测量你在Android中使用onTouchEvent拖动的距离?

时间:2012-07-23 01:06:43

标签: java android ontouchevent

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

1 个答案:

答案 0 :(得分:8)

您可以使用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)