長押しの検出
長押しの検出は、onLongPress()で処理を記述する
ガラケーのボタン押しっぱなし処理のようなものを作るときとかの実装に使えそう
まず、
implements GestureDetector.OnGestureListener, GestureDetector.OnDoubleTapListener
を追加
そして、アクセスしやすいように、メンバ変数の宣言
GestureDetector mGestureDetector;
次に、onCreate()の中でインスタンス作成
mGestureDetector = new GestureDetector(this,this);
次に、タッチイベント実装
ここで、タッチイベントの判別振り分けをする
public boolean onTouchEvent(MotionEvent e){ mGestureDetector.onTouchEvent(e); return false; }
そして、それぞれのタッチイベントを定義する
今回は、長押しのときだけ検出するので
onLongPress()のときに
トーストで表示
public boolean onLongPress(MotionEvent e){ Toast.makeText(this, "長押し検出しました",Toast.LENGTH_SHORT).show(); return false; }
これで、画面長押しすると、トーストで表示される
ちなみに、他の動作をメモると
//シングルタップ @Override public boolean onSingleTapUp(MotionEvent e){ return false; } //ダブルタップ public boolean onDoubleTap(MotionEvent e){ return false; } //画面を押したとき public boolean onDown(MotionEvent e){ return false; } //スワイプ @Override public boolean onFing(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY){ return false; } //スクロール @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY){ return false; }