響應觸控事件

許多自定義檢視需要以觸控事件的形式接受使用者互動。你可以通過覆蓋 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;
}

進一步閱讀: