Heim  >  Artikel  >  Java  >  Wie erkennt man langes Drücken in Android-OpenGL-ES-Anwendungen?

Wie erkennt man langes Drücken in Android-OpenGL-ES-Anwendungen?

Susan Sarandon
Susan SarandonOriginal
2024-11-01 17:45:02787Durchsuche

How to Detect Long Presses in Android OpenGL-ES Applications?

Erkennung langer Tastendrücke in Android für OpenGL-ES

Bei der Android-Programmierung ist die Erkennung langer Tastendrücke für verschiedene Benutzerinteraktionen unerlässlich. Traditionell haben sich Entwickler zur Erkennung von Berührungsereignissen auf die Methode onTouchEvent(MotionEvent event) verlassen. Diese Methode bietet jedoch keine spezielle Funktion zur Erkennung von langem Drücken.

Alternative Ansätze

Wie in Ihrer Frage erwähnt, besteht ein Workaround-Ansatz darin, sich sowohl für ACTION_DOWN als auch für ACTION_UP Touch zu registrieren Ereignisse und Berechnen der zwischen den beiden verstrichenen Zeit. Dies kann zwar die Erkennung von langem Drücken simulieren, erfordert jedoch eine explizite Timer-Verwaltung und manuelle Schwellenwertbestimmung.

Verwendung von GestureDetector

Glücklicherweise bietet Android eine robustere Lösung für die Erkennung von langem Drücken : die GestureDetector-Klasse. GestureDetector vereinfacht den Prozess, indem es Berührungsereignisse automatisch überwacht und Gesten erkennt, einschließlich langer Druckvorgänge. So implementieren Sie es:

<code class="java">GestureDetectorCompat gestureDetector = new GestureDetectorCompat(context, new GestureDetector.OnGestureListener() {
    @Override
    public boolean onDown(MotionEvent ev) {
        // Handle initial touch
        return true;
    }

    @Override
    public void onShowPress(MotionEvent ev) {
        // Triggered when a long press is detected
    }

    // Other gesture listening methods
});

@Override
public boolean onTouchEvent(MotionEvent event) {
    gestureDetector.onTouchEvent(event);
    return super.onTouchEvent(event);
}</code>

In diesem Beispiel wird GestureDetectorCompat mit einer GestureDetector.OnGestureListener-Implementierung erstellt und konfiguriert. Die Methoden onDown und onShowPress verarbeiten die Erkennung der ersten Berührung bzw. des langen Drückens. Die onTouchEvent-Methode registriert den GestureDetector für die Überwachung von Berührungsereignissen.

Fazit

Durch die Nutzung von GestureDetector erhalten Sie eine zuverlässige und effiziente Lösung zur Erkennung langer Druckvorgänge in Ihrem Android OpenGL- ES-Anwendungen ohne die Notwendigkeit einer manuellen Timer-Verwaltung oder Schwellenwertbestimmung.

Das obige ist der detaillierte Inhalt vonWie erkennt man langes Drücken in Android-OpenGL-ES-Anwendungen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn