1

私の問題は斜めの動きです。対角線をするときは、上下の動きとして認識してもらいたいです。しかし、私のコードは斜めの動きを左または右として認識します。

これどうやってするの?問題は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;

   }
4

0 に答える 0