unitis值为1的表示是,一毫秒时间单位内运动了多少个像素, unitis值为1000表示一秒(1000毫秒)时间单位内运动了多少个像素
float Velocity表示速率的最大值 void computeCurrentVelocity(int units) Equivalent to invoking computeCurrentVelocity(int, float) with a maximum velocity of Float.MAX_VALUE. abstract T getNextPoolable() float getXVelocity() Retrieve the last computed X velocity. float getXVelocity(int id) Retrieve the last computed X velocity. float getYVelocity(int id) Retrieve the last computed Y velocity. float getYVelocity() Retrieve the last computed Y velocity. abstract boolean isPooled() static VelocityTracker obtain() Retrieve a new VelocityTracker object to watch the velocity of a motion. void recycle() Return a VelocityTracker object back to be re-used by others. abstract void setNextPoolable(T element) abstract void setPooled(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 () 函数来获得当前的速度转载于:https://www.cnblogs.com/gcczhongduan/p/4565816.html