2017-02-17 4 views
1

アプリのマウスパッドを押したまま移動させないと、マウスクリックをシミュレートしようとしています。motioneventsでマウスクリックをシミュレートする

if(isConnected && out!=null){ 
       switch(event.getAction()){ 
        case MotionEvent.ACTION_DOWN: 
         //save X and Y positions when user touches the TextView 
         initX =event.getX(); 
         initY =event.getY(); 
         mouseMoved=false; 
         break; 
        case MotionEvent.ACTION_MOVE: 
         disX = event.getX()- initX; //Mouse movement in x direction 
         disY = event.getY()- initY; //Mouse movement in y direction 
         /*set init to new position so that continuous mouse movement 
         is captured*/ 
         initX = event.getX(); 
         initY = event.getY(); 
         if(disX !=0|| disY !=0){ 
          out.println(disX +","+ disY); //send mouse movement to server 
         } 
         mouseMoved=true; 
         break; 
        case MotionEvent.ACTION_UP: 
         //consider a tap only if usr did not move mouse after ACTION_DOWN 
         if(!mouseMoved){ 
           out.println(Constants.MOUSE_LEFT_CLICK); 
         } 
       } 
      } 
      return true; 
     } 
    }); 
} 

私はこれを試しましたが、なぜ動作しないのかわかりません。マウスパッドをクリックするたびにマウスが動く。これをどうすれば解決できますか?

答えて

1

if-elseで試して、最初に押してelse caseに移動してください。

0

マージンを設定して問題を解決しました。

int max = 2 
int min = -2 
case MotionEvent.ACTION_UP: 
         //consider a tap only if usr did not move mouse after ACTION_DOWN 
         if(disX <= max && disX >= min && disY <= max && disY >= min){ 
          out.println(Constants.MOUSE_LEFT_CLICK); 
          mouseMoved=false; 
          break; 
         } 
       } 
      } 
      return true; 
     } 
関連する問題