通过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();

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

你可能感兴趣的:(通过VelocityTracker追踪手指的滑动速度)