是否可以使用 onTouchEvent 测量某人在显示屏上拖动手指的距离?任何想法,将不胜感激。
问问题
3506 次
1 回答
9
您可以使用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)
。
于 2012-07-23T01:13:10.267 回答