タップ、ダブルタップの検出
タップやダブルタップの検出は
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は、
シングルタップ
ダブルタップ以外に、スワイプなども検出できる