2014-04-06 184 views
0

所以我坐在一個問題,它看似微不足道,應該很容易解決,但我似乎無法弄清楚如何做到這一點Android設備爲觸摸板

我的目標是用我的Android設備作爲通過藍牙連接的觸摸板。它有點工作,但它會立即將指針移動到我觸摸的位置,而不是在我的手指在屏幕上移動時移動。

 touchpad.setOnTouchListener(new View.OnTouchListener() { 
     public boolean onTouch(View v, MotionEvent event) { 
      if(event.getAction()==MotionEvent.ACTION_DOWN){ 

      } 

      if(event.getAction() == MotionEvent.ACTION_MOVE) 
      { 
       String xps = "X: "+(event.getX()); 
       String yps = "Y: "+(event.getY()); 


       cmd = xps + " " + yps + "\n";     
       moveCursor(cmd); 

      } 

      return true; 
     } 
    }); 

private void moveCursor(String command) 
{ 

     byte[] cmd = command.getBytes(); 
     try 
     { 
      OPS.write(cmd); 
     } 
     catch (IOException e){ 

      Log.e("Command error", command + " could not be executed"); 
     } 
     catch(NullPointerException e) 
     { 
      e.printStackTrace(); 
     } 
    } 
} 

在服務器端,我只是用一個機器人通過調用來模擬鼠標robot.MouseMove(X,Y)

回答

0

我不是一個Java開發人員,也沒有我之前,所以我可以用機器人不會爲您提供可用的代碼示例......但是我使用鼠標事件和觸摸事件編寫了一些可拖動的代碼。我相信你缺少的是一個起點,然後將增量(變化)添加到起點。在你的代碼示例中,我認爲你可以從MotionEvent.ACTION_DOWN中獲取起點(並將其存儲在一個變量中),然後在MotionEvent.ACTION_MOVE部分的頂部獲取delta值。從那裏你將使用你的起點,並在你的移動事件中添加增量。