有没有可能用现有的接口获取android中触控事件的速度、速度或加速度?我已经遍历了MotionEvent类,但该类中似乎没有一个字段检索到我需要的信息。任何帮助都将不胜感激
发布于 2012-11-07 00:26:00
在这种情况下,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();我希望它能为你工作。
发布于 2012-04-15 03:59:10
您需要使用System.nanoTime手动计算每两个事件之间的速度。加速度的方法也一样(但这次使用速度而不是坐标)。
https://stackoverflow.com/questions/10155907
复制相似问题