首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >运动事件的速度或加速度

运动事件的速度或加速度
EN

Stack Overflow用户
提问于 2012-04-15 01:51:23
回答 2查看 7K关注 0票数 4

有没有可能用现有的接口获取android中触控事件的速度、速度或加速度?我已经遍历了MotionEvent类,但该类中似乎没有一个字段检索到我需要的信息。任何帮助都将不胜感激

EN

回答 2

Stack Overflow用户

发布于 2012-11-07 00:26:00

在这种情况下,MotionEvent对您没有帮助。您可以使用VelocityTracker类。它获取MotionEvent实例并计算最近触摸事件的速度。您可以在这里查看它的文档:http://developer.android.com/reference/android/view/VelocityTracker.html

首先,您必须通过obtain()方法获取一个实例:

代码语言:javascript
复制
VelocityTracker velocity = VelocityTracker.obtain();

然后,您可以将ACTION_MOVE事件添加到其队列中:

代码语言:javascript
复制
    if(event.getAction() == MotionEvent.ACTION_MOVE)
    {
        velocity.addMovement(event);
    }

然后,您可以计算速度并提取x_velocity和y_velocity

代码语言:javascript
复制
velocity.computeCurrentVelocity(1000);
float x_velocity = velocity.getXVelocity();
float y_velocity = velocity.getYVelocity();

我希望它能为你工作。

票数 14
EN

Stack Overflow用户

发布于 2012-04-15 03:59:10

您需要使用System.nanoTime手动计算每两个事件之间的速度。加速度的方法也一样(但这次使用速度而不是坐标)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10155907

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档