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