2012-09-10 68 views
0

我試圖使用多點觸控作爲一種方法來同時按2個事物。多點觸控:ACTION_POINTER_DOWN&ACTION_POINTER_UP

這裏是我的代碼:

TouchHandle.setOnTouchListener(new OnTouchListener() { 
       public boolean onTouch(View view, MotionEvent event) { 
        int actions = event.getActionMasked(); 
        switch (actions) 
        { 
        case MotionEvent.ACTION_DOWN: 

        case MotionEvent.ACTION_POINTER_DOWN: 
         SendKeyCode(Server, "keydec.down"); 
        case MotionEvent.ACTION_POINTER_UP: 
         SendKeyCode(Server, "keydec.up"); 
        case MotionEvent.ACTION_UP: 

        } 
       return true; 
        } 
     }); 

的問題是,當我觸摸屏幕時,服務器中檢索「keydec.down」和「keydec.up」甚至認爲我沒有刪除我的手指還沒有從觸摸屏。因此,查看TouchHandle正在檢測到ACTION_POINTER_DOWNACTION_POINTER_UP,當我的手指觸摸屏幕時,即使我還沒有拉起手指,但尚未將手指向上移動。有什麼想法嗎?

+4

您的開關盒實現似乎缺少情況下的「break」。 – harism

+0

在案例之間添加'break'之後,它現在看起來很完美!謝謝! –

回答

1
int actions = event.getAction(); 
switch (actions) 
        { 
        case MotionEvent.ACTION_DOWN: 
        break; 
        case MotionEvent.ACTION_POINTER_DOWN: 
         SendKeyCode(Server, "keydec.down"); 
        break; 
        case MotionEvent.ACTION_POINTER_UP: 
         SendKeyCode(Server, "keydec.up"); 
        break; 
        case MotionEvent.ACTION_UP: 
        break; 

        } 

您應該在案件之間使用中斷。我也認爲這些MotionEvent常量可以與event.getAction()一起使用。