私の問題は斜めの動きです。対角線をするときは、上下の動きとして認識してもらいたいです。しかし、私のコードは斜めの動きを左または右として認識します。
これどうやってするの?問題はif条件にあるに違いないと思いますが、わかりません。
これは OnFling() メソッドの私のコードです:
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY) {
Log.d(DEBUG_TAG1, "onFling: " + event1.toString()+event2.toString());
if(event1.getX() - event2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY)
{
// movetoleft
Log.d(DEBUG_TAG3,"move left");
currentMove = 4;
Log.d(DEBUG_TAG3,"current move: " + currentMove);
return true;
}
else if (event2.getX() - event1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY)
{
// movetoright
Log.d(DEBUG_TAG3,"move right");
currentMove = 2;
Log.d(DEBUG_TAG3,"current move: " + currentMove);
return true;
}
if(event1.getY() - event2.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY)
{
//moveUp
Log.d(DEBUG_TAG3,"move up");
currentMove = 1;
Log.d(DEBUG_TAG3,"current move: " + currentMove);
return true;
}
else if (event2.getY() - event1.getY() > SWIPE_MIN_DISTANCE && Math.abs(velocityY) > SWIPE_THRESHOLD_VELOCITY)
{
//moveDown
Log.d(DEBUG_TAG3,"move down");
currentMove = 3;
Log.d(DEBUG_TAG3,"current move: " + currentMove);
return true;
}
return true;
}