2017-04-25 21 views
1

私はAndroidの携帯電話を使ってマウスの動きを制御するアプリケーションを作成しています。Robot mouseMoveが画面外に出るのを防ぐ方法

私が直面している問題は、マウスを画面の最後まで動かすと、動きが止まらずに続きます。

画面の終わりに達するとマウスの動きを止める方法を教えてください。前もって感謝します。

また、どのようにすべての画面解像度で動きを共通にすることができますか?

public void evaluate(String message) { 
     String[] data = message.split(" "); 
     switch (data[0]) { 
     case "M": 

      try { 
       n[0] = new Float(data[1]); 
       n[1] = new Float(data[2]); 
       Thread mouse = new Thread(new Runnable() { 

        @Override 
        public void run() { 
         // TODO Auto-generated method stub 

         Point a = MouseInfo.getPointerInfo().getLocation(); 
         int x = (int) a.getX(); 
         int y = (int) a.getY(); 
         double scale = 1; 
         int xnew = (int) (scale * n[1] + x); 
         int ynew = (int) (scale * n[0] + y); 
         robo.mouseMove(xnew, ynew); 
        } 
       }); 
       mouse.run(); 
      } catch (Exception e) { 
       // TODO Auto-generated catch block 
      } 
      break; 
} 

答えて

0

現在の画面解像度を取得し、newXとnewYが画面に表示されているかどうかを確認できます。

if(xnew < width && ynew < height) robo.mouseMove(xnew, ynew); 

画面resoultion取得するには:

Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize(); 
double width = screenSize.getWidth(); 
double height = screenSize.getHeight(); 
+0

をuがコードを詳しく説明することはできますか? –

+0

チェックアウト。私は自分の投稿を編集しました。 – sovas

関連する問題