當(dāng)需要跟蹤觸摸屏事件的速度的時(shí)候,可以使用VelocityTracker來追蹤滑動(dòng)速度,下面來介紹下VelocityTracker的基本使用步驟武翎。
【第一步】
創(chuàng)建對象
//創(chuàng)建慣性滑動(dòng)速度追蹤類對象
velocityTracker = VelocityTracker.obtain();
使用obtain()方法獲取實(shí)例蛉腌。
【第二步】
追蹤速度
//將事件加入到VelocityTracker類實(shí)例中
velocityTracker.addMovement(event);
//計(jì)算1秒內(nèi)滑動(dòng)的像素個(gè)數(shù)
velocityTracker.computeCurrentVelocity(1000);
//X軸方向的速度
xVelocity = (int) velocityTracker.getXVelocity();
//Y軸方向的速度
yVelocity = (int) velocityTracker.getYVelocity();
都加了注釋,不需要贅述了缴罗。
【第三步】
回收資源
//回收
velocityTracker.clear();
velocityTracker.recycle();
VelocityTracker的使用只有三步助琐,雖然比較簡單,但是必須要知道有這個(gè)方法可以計(jì)算滑動(dòng)速度面氓,也是研究fling事件的基礎(chǔ)兵钮。
最后蛆橡,貼出完整核心代碼
@Override
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
//創(chuàng)建慣性滑動(dòng)速度追蹤類對象
velocityTracker = VelocityTracker.obtain();
break;
case MotionEvent.ACTION_MOVE:
//將事件加入到VelocityTracker類實(shí)例中
velocityTracker.addMovement(event);
//計(jì)算1秒內(nèi)滑動(dòng)的像素個(gè)數(shù)
velocityTracker.computeCurrentVelocity(1000);
//X軸方向的速度
xVelocity = (int) velocityTracker.getXVelocity();
//Y軸方向的速度
yVelocity = (int) velocityTracker.getYVelocity();
break;
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_CANCEL:
//回收
velocityTracker.clear();
velocityTracker.recycle();
break;
}
return true;
}
[本章完...]