2017-04-25 56 views
1

我正在创建一个应用程序,使用android手机控制鼠标移动。如何防止机器人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