通过VelocityTracker追踪手指的滑动速度

通过VelocityTracker可以追踪手指在滑动过程中的速度,包括水平和竖直方向.

首先,要现在View的onTouchEvent方法中添加要追踪的事件

VelocityTracker velocityTracker = VelocityTracker.obtarn();

velocityTracker.addMovement(event);

接着,当在需要的地方可以这样来获得当前速度

velocityTracker.computeCurrentVelocity(1000);

int xVelocity = (int) velocityTracker.getXVelocity();

int yVelocity = (int) velocityTracker.getYVelocity();

这里需要注意的是:

(1)必须先计算速度在获取速度,即必须要先调用computeCurrentVelocity方法才可以调用getX/YVelocity方法

(2)这个速度是可以为负的,它指的是一段时间内手指所滑过的像素数,当手指逆着Android坐标滑动,结果即为负数了

(3)computeCurrentVelocity方法的参数是一个时间单元,单位为ms,如果参数为100,手指在100ms内划过了10个像素,水平速度即为10.参数为1000,手指在1000ms内划过了100个像素,那水平速度即为100.其实这两个速度是相等的(假设滑动过程都是匀速),但结果却不同,因为这个速度是相对于这个时间单元参数的,这里需要理解一下.

最后,当不需要它的时候,要回收内存

velocityTracker.clear();

velocityTracker.recycle();

使用看起来并不复杂,快动手试试吧!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容