当需要跟踪触摸屏事件的速度的时候,可以使用VelocityTracker来追踪滑动速度,下面来介绍下VelocityTracker的基本使用步骤。
【第一步】
创建对象
//创建惯性滑动速度追踪类对象
velocityTracker = VelocityTracker.obtain();
使用obtain()方法获取实例。
【第二步】
追踪速度
//将事件加入到VelocityTracker类实例中
velocityTracker.addMovement(event);
//计算1秒内滑动的像素个数
velocityTracker.computeCurrentVelocity(1000);
//X轴方向的速度
xVelocity = (int) velocityTracker.getXVelocity();
//Y轴方向的速度
yVelocity = (int) velocityTracker.getYVelocity();
都加了注释,不需要赘述了。
【第三步】
回收资源
//回收
velocityTracker.clear();
velocityTracker.recycle();
VelocityTracker的使用只有三步,虽然比较简单,但是必须要知道有这个方法可以计算滑动速度,也是研究fling事件的基础。
最后,贴出完整核心代码
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//创建惯性滑动速度追踪类对象
velocityTracker = VelocityTracker.obtain();
break;
case MotionEvent.ACTION_MOVE:
//将事件加入到VelocityTracker类实例中
velocityTracker.addMovement(event);
//计算1秒内滑动的像素个数
velocityTracker.computeCurrentVelocity(1000);
//X轴方向的速度
xVelocity = (int) velocityTracker.getXVelocity();
//Y轴方向的速度
yVelocity = (int) velocityTracker.getYVelocity();
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
//回收
velocityTracker.clear();
velocityTracker.recycle();
break;
}
return true;
}
[本章完...]