タッチとジェスチャー

タッチを処理するOnTouchListener
さらに詳細なイベントが必要な場合にはOnGestureListenerを使います。

OnTouchListener

OnTouchListenerはsetOnTouchListener()メソッドを使って、実装クラスとタッチ関連のイベントを関連付けます。
このリスナーによって提供されるメソッドは以下のメソッドです。

onTouchメソッド

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画面から離れると発生する

OnGestureListener

OnGestreListenerGestureDetectorオブジェクトを生成し、そのオブジェクトに関連付けて利用します。

#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

OnDoubleTapListenerGestureDetectorオブジェクトを生成し、そのオブジェクトに関連付けて利用します。

メソッド意味
onDoubleTapダブルタップした際に呼び出される
onDoubleTapEvent
onSingleTapConfirmed

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2011-12-08 (木) 15:08:30