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();