Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Android中,对角线在OnFling方法中以左/右转换,而不是向下/向上_Android_Diagonal_Onfling - Fatal编程技术网

在Android中,对角线在OnFling方法中以左/右转换,而不是向下/向上

在Android中,对角线在OnFling方法中以左/右转换,而不是向下/向上,android,diagonal,onfling,Android,Diagonal,Onfling,我的问题是对角线运动。当我做对角线时,我希望它被识别为向上或向下运动。但我的代码识别出了向左或向右的诊断运动 我该怎么做?我想问题一定是在if条件下,但我不明白 这是我的OnFling方法代码: @Override public boolean onFling(MotionEvent event1, MotionEvent event2, float velocityX, float velocityY) { Log.d(DEBUG_TAG1,

我的问题是对角线运动。当我做对角线时,我希望它被识别为向上或向下运动。但我的代码识别出了向左或向右的诊断运动

我该怎么做?我想问题一定是在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;

   }