MotionEvent
MotionEvent是用來描述手指觸摸屏幕的事件。當手指觸摸屏幕后,系統會產生一系列MotionEvent并發送個合適的View。
常用事件類型有ACTION_DOWN,ACTION_MOVE和ACTION_UP。
MotionEvent中持了觸摸事件類型,位置等信息。
獲取事件左邊信息的方法:
getX/getY 獲取相對于View左上角的坐標值
getRawX/getRawY 獲取相對于屏幕左上角的坐標值TouchSlop
TouchSlop是一個系統常量,標識系統所能識別的最小滑動距離。
獲取方式,ViewConfiguration.get(getContext()).getScaledTouchSlop();
在滑動處理中,可通過此常量對滑動進行一下過濾處理,可獲得更好的用戶體驗
3.Velocity
用于追蹤手指在滑動過程中的速度。
//在View的onTouch Event中追蹤事件的滑動速度。
VelocityTracker velocityTracker = VelocityTracker.obtain();
velocityTracker.addMovement(enent);
//計算指定間隔時間中的速度,分水平和垂直方向上的速度。
//最終獲得的是此間隔內,手指滑過的像素值。有正負之分
velocityTracker.computeCurrentVelocity(1000);
int xVelocity = (int) velocityTracker.getXVelocity();
int yVelocity = (int) velocityTracker.getYVelocity();
//當不需要使用時,記得回收
velocityTracker.clear();
velocityTracker.recycle();