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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS