通过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();
使用看起来并不复杂,快动手试试吧!
网友评论