View的触摸事件

  1. MotionEvent
    MotionEvent是用来描述手指触摸屏幕的事件。当手指触摸屏幕后,系统会产生一系列MotionEvent并发送个合适的View。
    常用事件类型有ACTION_DOWN,ACTION_MOVE和ACTION_UP。
    MotionEvent中持了触摸事件类型,位置等信息。
    获取事件左边信息的方法:
    getX/getY 获取相对于View左上角的坐标值
    getRawX/getRawY 获取相对于屏幕左上角的坐标值

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

你可能感兴趣的:(View的触摸事件)