1. Nimm jetzt an unserem 2. ADVENT-Gewinnspiel teil - Alle Informationen findest Du hier!

Multitouch funktioniert nicht

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Kaisky007, 21.09.2011.

  1. Kaisky007, 21.09.2011 #1
    Kaisky007

    Kaisky007 Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    20.09.2011
    Moin, ich probiere seit Tagen, dass man in meinem spiel mehrere Buttons gleichzeitig drücken kann, was ohne Multitouch nicht geht.
    Der folgende code bewirkt aber nichts, das programm nimmt immernoch nur das zuerst gedrückte.
    Code:
        public boolean onTouchEvent(MotionEvent ev)
        {
            final int count = ev.getPointerCount();
            for(int i = 0; i < count; i++)
            {
                final int x = (int) ev.getX(i);
                final int y = (int) ev.getY(i);
                final int action = ev.getAction();
                if(action == MotionEvent.ACTION_DOWN)
                {
                    Touch(x, y, false);
                }
                else if(action == MotionEvent.ACTION_UP)
                {
                    Touch(x, y, true);
                }
            }
            return true;
        }
    Grüße Kaisky007
     
  2. v Ralle v, 22.09.2011 #2
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Was versuchst du denn zu erreichen? Das was du da machst, sieht für mich etwas komisch aus.

    Wenn du mehrere Touchevents abfangen willst, musst du einen OnTouchListener verwenden. Da heißt die Methode onTouch(...). Für jeden Druck wird bei dem Listener ein Event gefeuert, anhand der PointerID kannst du dann unterscheiden, ob es der erste oder 2 Finger war.
     
  3. Kaisky007, 22.09.2011 #3
    Kaisky007

    Kaisky007 Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    20.09.2011
    Ich habe in der App mehrere Touch Buttons. Später im spiel wirds kaum noch schaffbar wenn die Buttons nicht reagieren, weil man noch den letzten drückt. Mein ziel ist nun das man z.b. button 1 und 2 auch gleichzeitig drücken kann, oder ganz schnell hintereinander.

    So, jetzt verwende ich onTouch, aber er reagiert nur auf multitouch wenn ich if(action == MotionEvent.ACTION_DOWN) weglasse. Nur dann führt er wenn ich nur ein finger benutze das alles doppelt aus.
     
  4. v Ralle v, 22.09.2011 #4
    v Ralle v

    v Ralle v Android-Lexikon

    Beiträge:
    913
    Erhaltene Danke:
    199
    Registriert seit:
    27.08.2010
    Benutzt du einen OnTouchListener und weist auch allen Button den Listener hinzu?

    Hast du dir das mit der ID mal angeschaut?
     
  5. Kaisky007, 22.09.2011 #5
    Kaisky007

    Kaisky007 Threadstarter Neuer Benutzer

    Beiträge:
    14
    Erhaltene Danke:
    0
    Registriert seit:
    20.09.2011
    Mit der ID habe ich mir ein Beispiel angeschaut, half aber auch nicht.
    Und ich weise kein Button was zu, sondern habe nur den oben angegebenen Code (jetzt bisschen verändert) und in Touch(int x, int y, boolean release) wird dannabgefragt ob die koordinaten auf einen button treffen. Somit habe ich ein Listener für den ganzen View..
     

Diese Seite empfehlen