スワイプの検出

スワイプの検出

スワイプの検出は
MotionEventを定義すれば実装できる

まず、定数を宣言

private static final int SWIPE_MIN_DISTANCE = 120;
private static final int SWIPE_MAX_OFF_PATH = 250;
private static final int SWIPE_THRESHOLD_VELOCITY = 200;

private GestureDetector mGestureDetector;

次に、onCreate()の中でインスタンス取得

mGestureDetector = new GestureDetector(this, mOnGestureListener);

この
mOnGestureListenerは後で作成

次に、onTouchEvent()の実装

@Override
public boolean onTouchEvent(MotionEvent e){

return mGestureDetector.onTouchEvent(e);
}

そして、スワイプ動作の検出
これは、onFing()の中で処理すればいい

private final SimpleOnGestureListener mOnGestureListener = new SimpleOnGestureListener(){

@Override
public boolean onFing(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY){

try{

if(Math.abs(event1.getY() - event2.getY()) < SWIPE_MAX_OFF_PATH){
return false;
}
if(event1.getX() - event2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY){
Toast.makeText(MainActivity.this, "左スワイプ", Toast.LENGTH_SHORT).show();
}
else if(event2.getX() - event1.getX() > SWIPE_MIN_DISTANCE && Math.abs()velocityX > SWIPE_THRESHOLD_VELOCITY){

Toast.makeText(MainActivity.this, "右スワイプ", Toast.LENGTH_SHORT).show();
}
}catch(Exception e){
//nothing
}

}
return false;
}
};

このように、定数で座標を設定し、それに対する範囲の判定をすることで
スワイプのときの動作をすることができる

コメントを残す

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