示例:
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 ()
函數來得到當前的速度