在Android中,是否可以使用现有的API获取触摸事件的速度、速率或加速度?我已经查看了MotionEvent类,并且那个类中没有任何字段似乎可以检索到我需要的信息。非常感谢任何帮助。
在Android中,是否可以使用现有的API获取触摸事件的速度、速率或加速度?我已经查看了MotionEvent类,并且那个类中没有任何字段似乎可以检索到我需要的信息。非常感谢任何帮助。
MotionEvent在这种情况下无法帮助您。您可以使用VelocityTracker类,它获得MotionEvent实例并计算最近触摸事件的速度。 您可以在此处查看其文档: http://developer.android.com/reference/android/view/VelocityTracker.html
首先,您需要通过obtain()方法获取一个实例:
VelocityTracker velocity = VelocityTracker.obtain();
然后您可以将ACTION_MOVE事件添加到其队列中:
if(event.getAction() == MotionEvent.ACTION_MOVE)
{
velocity.addMovement(event);
}
那么你可以计算速度并提取 x_velocity 和 y_velocity。
velocity.computeCurrentVelocity(1000);
float x_velocity = velocity.getXVelocity();
float y_velocity = velocity.getYVelocity();
我希望它对你有用。