触控事件MotionEvent

MotionEvent中封装的一些常用的事件常量:

//单点触摸按下动作
public static final int ACTION_DOWN         = 0;
//单点触摸抬起动作
public static final int ACTION_UP           = 1;
//触摸点移动动作
public static final int ACTION_MOVE         = 2;
//触摸动作取消
public static final int ACTION_CANCEL       = 3;
//触摸动作超出边界
public static final int ACTION_OUTSIDE      = 4;
//多点触摸按下动作
public static final int ACTION_POINTER_DOWN = 5;
//多点离开动作
public static final int ACTION_POINTER_UP   = 6;
MotionEvent固定使用模式:

@Override
public boolean onTouchEvent(MotionEvent event) {
    //获取触控事件的类型
    int action = event.getAction();
    //获取点击事件发生时的x,y坐标
    int x = (int) event.getX();
    int y = (int) event.getY();
    //使用switch-case方法进行筛选,这是一个固定模式
    switch (action) {
        case MotionEvent.ACTION_DOWN:
            //处理手指刚接触屏幕的按下事件
            break;
        case MotionEvent.ACTION_MOVE:
            //处理手指在屏幕上的移动事件
            break;
        case MotionEvent.ACTION_UP:
            //处理手指从屏幕上松开的一瞬间事件
            break;
    }
    return true;
}
MotionEvent提供的方法:

getX() :点击事件发生的位置相对于当前View左上角的x坐标

getY() :点击事件发生的位置相对于当前View左上角的y坐标

getRawX() :点击事件发生的位置相对于手机屏幕左上角的x坐标

getRawY() :点击事件发生的位置相对于手机屏幕左上角的y坐标

如图所示:

触控事件MotionEvent