學習記錄自《Android開發藝術探索》.
VelocityTracker
速度追蹤,用於追蹤手指在滑動過程中的速度.
在View的onTouchEvent方法中追蹤手指的速度
@Override
public boolean onTouchEvent(MotionEvent event) {
/**
* 速度追蹤,用於追蹤手指在滑動過程中的速度
* 追蹤當前單擊的速度
*/
VelocityTracker obtain = VelocityTracker.obtain();
obtain.addMovement(event);
/**
* 獲取當前滑動速度
* 速度是指在一段時間內手指劃過的像素 左->右 正值 右->左 負值
* 速度 = (終點位置 - 起點位置)/時間段
*/
int action = event.getAction();
switch (action) {
case MotionEvent.ACTION_MOVE:
obtain.computeCurrentVelocity(1000);//1000毫秒
float xVelocity = obtain.getXVelocity();
float yVelocity = obtain.getYVelocity();
UtilsLog.e(this.getClass().getSimpleName(), "xVelocity" + xVelocity);
UtilsLog.e(this.getClass().getSimpleName(), "yVelocity" + yVelocity);
/**
* 獲取速度之前必須計算速度 在get之前必須調用compute方法
*/
break;
}
/**
* 不使用時 重置並回收內存
*/
obtain.clear();
obtain.recycle();//回收
return super.onTouchEvent(event);