タッチを処理するOnTouchListener。
さらに詳細なイベントが必要な場合にはOnGestureListenerを使います。
OnTouchListenerはsetOnTouchListener()メソッドを使って、実装クラスとタッチ関連のイベントを関連付けます。
このリスナーによって提供されるメソッドは以下のメソッドです。
onTouchメソッドはタッチに関するイベント全てが来ます。
以下のソースのように、引数のMotionEventオブジェクトのgetAction()メソッドの戻り値でどのような操作がされたかを判断します。
#codeprettify{{ public boolean onTouch(View view, MotionEvent event) {
switch(event.getAction() & MotionEvent.ACTION_MASK) { case MotionEvent.ACTION_MOVE: break; case MotionEvent.ACTION_UP: break; case MotionEvent.ACTION_POINTER_UP: break; } return true;
} }}
定数 | 意味 |
ACTION_DOWN | 画面をタッチした際に発生する |
ACTION_MOVE | 画面をタッチした状態で動かすことで発生する |
ACTION_POINTER_DOWN | 既にタッチしている状態で、さらにタッチした場合に発生する |
ACTION_POINTER_UP | 複数タッチしている状態でいずれかのタッチをやめると発生 |
ACTION_SCROLL | |
ACTION_UP | 画面から離れると発生する |
OnGestreListenerはGestureDetectorオブジェクトを生成し、そのオブジェクトに関連付けて利用します。
#codeprettify{{ class DummyClass implements OnTouchListener, OnGestureListener{
private GestureDetector gestureDetector = null; … private void init(){ gestureDetector = new GestureDetector(this); setOnTouchListener(this); } @Override public boolean onDown(MotionEvent e) { return false; }
} }}
メソッド | 意味 |
onDown | タップした際に呼び出される |
onFling | はじくような操作を行った際に呼び出される |
onLongPress | 長く画面をタッチしたときに呼び出される |
onScroll | スクロール(タップ後なぞるような操作)が発生すると呼び出される |
onShowPress | |
onSingleTapUp |
OnDoubleTapListenerはGestureDetectorオブジェクトを生成し、そのオブジェクトに関連付けて利用します。
メソッド | 意味 |
onDoubleTap | ダブルタップした際に呼び出される |
onDoubleTapEvent | |
onSingleTapConfirmed |