是否可以使用onTouchEvent测量某人在显示屏上拖动手指的距离?任何想法都将不胜感激。
答案 0 :(得分:8)
您可以使用ACTION_DOWN
和ACTION_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)
。