2

是否可以使用 onTouchEvent 测量某人在显示屏上拖动手指的距离?任何想法,将不胜感激。

4

1 回答 1

9

您可以使用ACTION_DOWNACTION_UP存储手指触摸的起点和终点并计算拖动的距离。

例如:

Point p1;
Point p2;

View view = new View(this);

view.setOnTouchListener(new View.OnTouchListener() {
       public boolean onTouch(View v, MotionEvent event) {
         if(event.getAction() == MotionEvent.ACTION_DOWN)
            p1 = new Point((int) event.getX(), (int) event.getY());
         else if(event.getAction() == MotionEvent.ACTION_UP)
            p2 = new Point((int) event.getX(), (int) event.getY());

         return false;
      }
});

并且距离等于Math.sqrt(Math.pow(p1.x-p2.x, 2) + Math.pow(p1.y-p2.y, 2))。而且,如果你想计算任何时候拖动的距离,你可以存储第二个位置if(event.getAction() == MotionEvent.ACTION_MOVE)

于 2012-07-23T01:13:10.267 回答