*タッチとジェスチャー [#v1199a7e] タッチを処理するOnTouchListener。~ さらに詳細なイベントが必要な場合にはOnGestureListenerを使います。 #contents **OnTouchListener [#qcb68342] OnTouchListenerはsetOnTouchListener()メソッドを使って、実装クラスとタッチ関連のイベントを関連付けます。~ このリスナーによって提供されるメソッドは以下のメソッドです。 -onTouch ***onTouchメソッド [#t7e4bd7b] 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; } }} |定数|意味|h //|ACTION_CANCEL || |ACTION_DOWN |画面をタッチした際に発生する| //|ACTION_HOVER_ENTER || //|ACTION_HOVER_EXIT || //|ACTION_HOVER_MOVE || //|ACTION_MASK || |ACTION_MOVE |画面をタッチした状態で動かすことで発生する| //|ACTION_OUTSIDE|| |ACTION_POINTER_DOWN|既にタッチしている状態で、さらにタッチした場合に発生する| |ACTION_POINTER_UP |複数タッチしている状態でいずれかのタッチをやめると発生| |ACTION_SCROLL || |ACTION_UP |画面から離れると発生する| **OnGestureListener [#qbe47255] 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; } } }} OnGestureListener |メソッド|意味|h |onDown |タップした際に呼び出される| |onFling |はじくような操作を行った際に呼び出される| |onLongPress |長く画面をタッチしたときに呼び出される| |onScroll |スクロール(タップ後なぞるような操作)が発生すると呼び出される| |onShowPress || |onSingleTapUp|| OnDoubleTapListener **OnDoubleTapListener [#a013f52d] OnDoubleTapListenerはGestureDetectorオブジェクトを生成し、そのオブジェクトに関連付けて利用します。~ |メソッド|意味|h |onDoubleTap |ダブルタップした際に呼び出される| |onDoubleTapEvent || |onSingleTapConfirmed||