*タッチとジェスチャー [#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||