OnTouchEvent

A

Andi0310

Neues Mitglied
0
Hallo .

Bin dabei ein Spiel für Android zu entwickeln und habe folgendes Problem.
Ich habe zwei BitmapSymbole , eins für hochbewegen und eins für runter.
Jetzt möchte ich wenn ich eines der Symbole berühre das die Aktion ausgeführt wird bis ich loslasse.
Aber es funktioniert nur so, dass ich immer wieder darauftippen muss um die Aktion auszuführen.

Kann mir jemand weiterhelfen ?
 
Ich verstehe die Frage nicht so ganz:

Beispielcode:
Code:
public boolean onTouchEvent(MotionEvent event) {
    int eventaction = event.getAction();

    switch (eventaction) {
        case MotionEvent.ACTION_DOWN: 
            // hier das gedrückte Bitmap setzen
            break;

        case MotionEvent.ACTION_UP:   
            // Hier das losgelassene Bitmap setzen
            break;


        case MotionEvent.ACTION_MOVE:   
            // hier ggf. Bewegungen verarbeiten
            break;
    }

    return true; 
}
 
Es geht eigentlich garnicht um die Bitmaps, sondern vielmehr darum, dass ich einen Bereich des Displays berühren möchte und die die Aufgabe dann solange durchgeführt wird bis ich wieder loslasse.

Auch mit dem von dir gezeigten Beispiel funktioniert das nur so, dass ich entweder beim berühren Wischen muss oder im Klopftackt auf den Bildschirm Tippen muss.
Ich habe oben links ein Symbol(Pfeil) für rauf und unten links einen Pfeil für runter.
Diese beühren, soll mein Object rauf oder runterfahren bis ich losslasse.

Danke.
 
Versuchs mal mit
Code:
return false;
am Ende von onTouchEvent
 
Versuch mal folgendes:

Setz ein Flag, wenn ACTION_DOWN ausgelöst wird. Dann lässt du in einer rekursiven Funktion deinen gewünschten Code ausführen und checkst dabei immer ob nicht ACTION_UP getriggert wurde. Falls das passiert wird das Flag auf false gesetzt und deine Funktion bricht ab, wenn es das Flag checkt.
 
Habe das mit reurn false ausprobiert, aber ich habe jetzt herausgefunden, dass automatisch hinter jedem ACTION_DOWN ein ACTION_UP folgt.

Das mit den Flags habe ich auch schon ausprobiert, funktioniert auch nicht.

Aber Danke
 
Naja ACTION_UP kommt dann beim loslassen. Was ist denn mit false passiert?

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Ja, ACTION_DOWN wird beim Drücken des Displays, ACTION_UP beim Loslassen erzeugt. Es ist also logisch, dass auf ein ACTION_DOWN ein ACTION_UP folgen muss.

Mit "funktioniert nicht" kann man dir nicht helfen, poste mal kompletten Code.

PS: return true; müsste stimmen, da du das Event gehandelt hast.
 
Es soll ja nicht gehandelt werden, damit es immer wieder ausgeführt wird wie gewünscht. Bis dann eben ACTION_UP kommt.

Gesendet von meinem Galaxy Nexus mit der Android-Hilfe.de App
 
Ich habe einen wie solls auch anders sein "Dusselichkeitsfelhler" gemacht.
Ich habe die gesammte Action, welche ausgeführt werden soll in der OnTouchEvent-Methode ausgeführt ohne dabei auf die Idee zu kommen dass OnTouchEvent nur , in diesem Falle bei berühren und bei loslassen des Displays ausgeführt wird, aber nicht während man den Finger auf dem Display hat.

Ich habe einen Flag gesetzt und dieser wird nun in der OnDraw-Methode abgefragt.

Funktioniert aber nur mit return true.

Danke an alle, die mir versucht haben zu helfen.
 
Naja, ist ja klar, dass das Event nur einmal gefeuert wird und zwar wenn es eintritt ;)
Den Rest muss man dann natürlich schon "auslagern"
 

Ähnliche Themen

S
  • schornstein
Antworten
2
Aufrufe
654
StefMa
StefMa
D
  • DroidGuy
Antworten
2
Aufrufe
593
DroidGuy
D
S
Antworten
20
Aufrufe
2.751
Shelly22
S
Zurück
Oben Unten