android.view.VelocityTracker主要用跟踪触摸屏事件(flinging事件和其余gestures手势事件)的速率。用addMovement(MotionEvent)函数将Motion event加入到VelocityTracker类实例中.你能够使用getXVelocity() 或getXVelocity()得到横向和竖向的速率到速率时,可是使用它们以前请先调用computeCurrentVelocity(int)来初始化速率的单位 。android
private VelocityTracker mVelocityTracker;//声明变量 函数
//在onTouchEvent(MotionEvent ev)中 spa
if (mVelocityTracker == null) { 对象
mVelocityTracker = VelocityTracker.obtain(); //得到VelocityTracker类实例 事件
} ci
mVelocityTracker.addMovement(ev); //将事件加入到VelocityTracker类实例中 get
//判断当ev事件是MotionEvent.ACTION_UP时:计算速率 回调函数
final VelocityTracker velocityTracker = mVelocityTracker; it
velocityTracker.computeCurrentVelocity(1, (float)0.01); //设置maxVelocity值为0.1时,速率大于0.01时,显示的速率都是0.01,速率小于0.01时,显示正常 io
Log.i("test","velocityTraker"+velocityTracker.getXVelocity());
velocityTracker.computeCurrentVelocity(1000); //设置units的值为1000,意思为一秒时间内运动了多少个像素
Log.i("test","velocityTraker"+velocityTracker.getXVelocity());
当你须要跟踪触摸屏事件的速度的时候,使用obtain()方法来得到VelocityTracker类的一个实例对象
在onTouchEvent回调函数中,使用addMovement(MotionEvent)函数将当前的移动事件传递给VelocityTracker对象
使用computeCurrentVelocity(int units)函数来计算当前的速度,使用 getXVelocity()、 getYVelocity()函数来得到当前的速度