2012-04-09 13 views
0

Ich habe vor kurzem versucht, Multi-Touch für meine App zu verwenden, aber nicht in der Lage, irgendeine Hilfe mit meinem Problem zu finden krank Post das Bit meines Codes habe ich Probleme mit. ich benutze und alte adk mit einem api-level von 7 ist multi-touch verfügbar für androids running 2.1?Android Multi-Touch funktioniert nicht

dank

@Override 
    public boolean onTouchEvent(MotionEvent event) { 
      super.onTouchEvent(event); 


      int action = event.getAction() & MotionEvent.ACTION_MASK; 

      switch (action) { 
      case MotionEvent.ACTION_DOWN: { 
       float tx = event.getX(); 
       float ty = event.getY(); 
       if (tx > joystick.getWidth() - joystick.getWidth() && tx < (joystick.getWidth()/3) && ty > getHeight() - joystick.getHeight()) { 
        left(); 
        invalidate(); 
       } 
       if (tx > (joystick.getWidth()/3)*2 && tx < (joystick.getWidth()) && ty > getHeight() - joystick.getHeight()) { 
        right(); 
        invalidate(); 
       } 
       if (tx > getWidth() - button.getWidth() - (button.getWidth()/4) 
         && ty > getHeight() - button.getHeight() 
           - (button.getHeight()/4)) { 
        jump(); 
        invalidate(); 
       }else{jump_true = 0 ; 
       jump_is = true;} 
        break; 
      } 
      case MotionEvent.ACTION_MOVE: { 
       float txm = event.getX(); 
       float tym = event.getY(); 
       if (txm > joystick.getWidth() - joystick.getWidth() && txm < (joystick.getWidth()/3) && tym > getHeight() - joystick.getHeight()) { 
        left(); 
        right = false; 
        invalidate(); 
       } 
       if (txm > getWidth() - button.getWidth() - (button.getWidth()/4) 
         && tym > getHeight() - button.getHeight() 
           - (button.getHeight()/4)) { 
        //jump(); 
        //invalidate(); 
       }else{ 
        //jump_true = 0 ; 
        //jump_is = true; 
       } 
       if (txm > (joystick.getWidth()/3)*2 && txm < (joystick.getWidth()) && tym > getHeight() - joystick.getHeight()) { 
        right(); 
        left = false; 
        invalidate(); 
       } 
       if (txm > getWidth() - button.getWidth() - (button.getWidth()/4) 
         && tym > getHeight() - button.getHeight() 
           - (button.getHeight()/4)) { 
        jump(); 
        invalidate(); 
       }else{jump_true = 0 ; 
       jump_is = true;} 
        break; 
      } 

      case MotionEvent.ACTION_POINTER_DOWN: { 
       float txp = event.getX(); 
       float typ = event.getY(); 
       if (txp > getWidth() - button.getWidth() - (button.getWidth()/4) 
         && typ > getHeight() - button.getHeight() 
           - (button.getHeight()/4)) { 
        jump(); 
        invalidate(); 
       }else{jump_true = 0 ; 
       jump_is = true;} 

       if (txp > joystick.getWidth() - joystick.getWidth() && txp < (joystick.getWidth()/3) && typ > getHeight() - joystick.getHeight()) { 
        left(); 
        right = false; 
        invalidate(); 
       } 
       if (txp > getWidth() - button.getWidth() - (button.getWidth()/4) 
         && typ > getHeight() - button.getHeight() 
           - (button.getHeight()/4)) { 
        //jump(); 
        //invalidate(); 
       }else{ 
        //jump_true = 0 ; 
        //jump_is = true; 
       } 
       if (txp > (joystick.getWidth()/3)*2 && txp < (joystick.getWidth()) && typ > getHeight() - joystick.getHeight()) { 
        right(); 
        left = false; 
        invalidate(); 
       } 
      break; 
      } 
      case MotionEvent.ACTION_POINTER_UP: { 
       touch_up(); 
       invalidate(); 
        break; 
      } 
      case MotionEvent.ACTION_UP: { 
       touch_up(); 
       invalidate(); 
        break; 
      } 
      } 

      return true; 
    } 


    private void touch_up() { 
     left = false; 
     right = false; 
     jump_true = 0 ; 
     jump_is = true; 
    } 

    private void left() { 
     left = true; 
    } 
    private void right(){ 
     right = true; 
    } 
    private void jump() { 
     jump_true=1; 
     jump_done = false; 
    } 
+0

Testen Sie es auf Emulator oder in einem Telefon? Wenn Sie ein Telefon verwenden, vergewissern Sie sich, dass die Hardware über Multi-Touch funktioniert. – Guedes

+0

Was meinst du mit 'nicht arbeiten'? Anstatt Code zu verwerfen und zu sagen, wie es nicht funktioniert, sagen Sie uns bitte, was falsch ist und was Sie versucht haben? – slayton

+0

Nein mein Handy unterstützt definitiv Multitouch und indem ich nicht arbeite, meine ich, dass es den zweiten Finger nicht erkennt, funktioniert es nur mit einem Finger –

Antwort