VelocityTracker
速度追蹤,用於追蹤手指在滑動過程中的速度,包括水平和豎直方向的速度。
代碼示例:
@Override
public boolean onTouchEvent(MotionEvent event) {
//初始化
VelocityTracker velocityTracker = VelocityTracker.obtain();
velocityTracker.addMovement(event);
//獲取速度前必須先計算速度
velocityTracker.computeCurrentVelocity(1000);
int xVelocity = (int) velocityTracker.getXVelocity();
int yVelocity = (int) velocityTracker.getYVelocity();
Log.d("demo", "xVelocity" + xVelocity);
Log.d("demo", "yVelocity" + yVelocity);
return super.onTouchEvent(event);
}
注意:
- 獲取速度前必須先計算速度
- computeCurrentVelocity方法是計算一段時間內手指滑動的像素數,時間間隔單位是毫秒
- 速度可以爲負數,當手指從右往左滑動的時候水平速度即爲負值,同理豎直。
速度計算公式
速度 = (終點位置 - 起點位置) / 時間段
回收
velocityTracker.clear();
velocityTracker.recycle();