VelocityTracker简介-飞外

android.view.VelocityTracker主要用跟踪触摸屏事件(flinging事件和其他gestures手势事件)的速率。用addMovement(MotionEvent)函数将Motion event加入到VelocityTracker类实例中.你可以使用getXVelocity()或getXVelocity()获得横向和竖向的速率到速率时,但是使用它们之前请先调用computeCurrentVelocity(int)来初始化速率的单位
computeCurrentVelocity(int units, float maxVelocity)Compute the current velocity based on the points that have been collected.intunitis表示速率的基本时间单位。unitis值为1的表示是,一毫秒时间单位内运动了多少个像素, unitis值为1000表示一秒(1000毫秒)时间单位内运动了多少个像素floatVelocity表示速率的最大值
setNextPoolable(T element)abstract voidsetPooled(boolean isPooled)示例: private VelocityTracker mVelocityTracker;//生命变量 //在onTouchEvent(MotionEvent ev)中 if (mVelocityTracker == null) { mVelocityTracker = VelocityTracker.obtain();//获得VelocityTracker类实例 } mVelocityTracker.addMovement(ev);//将事件加入到VelocityTracker类实例中 //判断当ev事件是MotionEvent.ACTION_UP时:计算速率 final VelocityTracker velocityTracker = mVelocityTracker; // 1000 provides pixels per second velocityTracker.computeCurrentVelocity(1, (float)0.01);//设置maxVelocity值为0.1时,速率大于0.01时,显示的速率都是0.01,速率小于0.01时,显示正常 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 ()函数来获得当前的速度