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

Wil*_* L. 1 java android touch-event

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

Hos*_*her 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;
      }
});
Run Code Online (Sandbox Code Playgroud)

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