タップ、ダブルタップの検出

タップ、ダブルタップの検出

タップやダブルタップの検出は
GestureDetectorと
onTouchEventを設定すれば実装できる

まず、

implements GestureDetector.OnGestureDetector, GestureDetector.OnDoubleTapListener

を追加

そして

GestureDetector mGestureDetector;

でメンバ変数宣言

次に、onCreate()の中で

mGestureDetector = new GestureDetector(this, this);

でGestureDetectorインスタンス作成

次に、タッチイベント実装

public boolean onTouchEvent(MotionEvent e){

//GestureDetector.onTouchEvent()でタッチイベントの判別、振り分けをする
mGestureDetector.onTouchEvent(e);

return false;
}

次に、シングルタップの実装
今回、はシングルタップならトーストで表示

@Override
public boolean onSingleTapUp(MotionEvent e){

Toast.makeText(this, 
"シングルタップだよ",Toast.LENGTH_SHORT).show();
return false;
}

そして、ダブルタップの処理
今回は、ダブルタップを検出したらトーストで表示

public boolean onDoubleTap(MotionEvent e){

Toast.makeText(this,"ダブルタップされたよ",Toast.LENGTH_SHORT).show();
return false;
}

タップの検出だけなら
ViewへonTouchListenerの設定だけでよい
しかし、ダブルタップとシングルタップを検出するのなら
GestureDetectorを使う

GestureDetectorは、
シングルタップ
ダブルタップ以外に、スワイプなども検出できる

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です