响应触摸事件

许多自定义视图需要以触摸事件的形式接受用户交互。你可以通过覆盖 onTouchEvent 来访问触摸事件。你可以过滤掉许多操作。主要是

  • ACTION_DOWN:当你的手指第一次触摸视图时触发。
  • ACTION_MOVE:每当你的手指在视图中稍微移动时,就会调用此方法。它被多次调用。
  • ACTION_UP:当你将手指从屏幕上抬起时,这是最后一个动作。

你可以将以下方法添加到视图中,然后在触摸并在视图周围移动手指时观察日志输出。

@Override
public boolean onTouchEvent(MotionEvent event) {

    int x = (int) event.getX();
    int y = (int) event.getY();
    int action = event.getAction();

    switch (action) {
        case MotionEvent.ACTION_DOWN:
            Log.i("CustomView", "onTouchEvent: ACTION_DOWN: x = " + x + ", y = " + y);
            break;

        case MotionEvent.ACTION_MOVE:
            Log.i("CustomView", "onTouchEvent: ACTION_MOVE: x = " + x + ", y = " + y);
            break;

        case MotionEvent.ACTION_UP:
            Log.i("CustomView", "onTouchEvent: ACTION_UP: x = " + x + ", y = " + y);
            break;
    }
    return true;
}

进一步阅读: