android - 运动事件android的速度或加速度

标签 android performance touch velocity acceleration

是否可以通过现有的api在android中获取触摸事件的速度或速度或加速度?我已经完成了 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();

希望对你有用。

关于android - 运动事件android的速度或加速度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10155907/

相关文章:

javascript - 有什么方法可以使 CSS 转换与触摸事件(滑动)同步?

jquery - 如何防止 'canvas'内部的单点触摸 - IOS应用

Android 从非 Activity 创建 AlertDialog

android - XML Drawable 未扩展到 View 大小,或 View 未正确继承其父级高度,在 Android API < 11 上

android - 在android TextView中垂直对齐后缀与制表符空间

performance - Julia:多参数的效率

apache - 为什么当应用程序服务器很快时 Apache 会很慢?

java - 如何添加从另一个 Activity 传递的字符串中的文本并在 Textview 中显示结果文本

mysql - MySQL 结果集上 Next 按钮的高效算法

javascript - Sencha Touch 和 Clusterize.js,向下传递触摸滚动事件