Heim > Java > javaLernprogramm > Wie erkennt man lange Klicks in Android OpenGL-ES-Anwendungen?

Wie erkennt man lange Klicks in Android OpenGL-ES-Anwendungen?

Patricia Arquette
Freigeben: 2024-11-03 07:40:03
Original
963 Leute haben es durchsucht

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

So erkennen Sie lange Klicks in Android mit OpenGL-ES

Um zu erkennen, wann der Benutzer auf eine Oberfläche drückt, die von einem OpenGL-ES gerendert wird Für eine Anwendung verwenden Entwickler normalerweise die Methode onTouchEvent(MotionEvent event). Diese Methode verfügt jedoch nicht über eine integrierte Funktionalität zur Erkennung langer Klicks.

Ein Ansatz besteht darin, sich für das ACTION_DOWN-Ereignis zu registrieren. Planen Sie dann in onTouchEvent die Ausführung eines Runnable nach einer bestimmten Zeitverzögerung. Wenn das Runnable aufgrund eines ACTION_UP- oder ACTION_MOVE-Ereignisses vor seiner Ausführung abgebrochen wird, zeigt dies an, dass der Benutzer keinen langen Klick ausgeführt hat.

Alternativ bietet Android eine ausgefeiltere Lösung: GestureDetector, die verwendet werden kann um eine Vielzahl von Gesten zu erkennen, einschließlich langer Klicks.

GestureDetector verwenden

Um GestureDetector zu verwenden, befolgen Sie diese Schritte:

  1. Erstellen Sie eine Instanz von GestureDetector.
  2. Überschreiben Sie die onTouchEvent-Methode in Ihrer Aktivität oder Ihrem Fragment.
  3. Übergeben Sie in onTouchEvent das Berührungsereignis an die GestureDetector-Instanz, indem Sie „gesteDetector.onTouchEvent(event)“ verwenden.
  4. Registrieren Sie einen OnGestureListener beim GestureDetector, um lange Klicks zu erkennen.

Hier ist ein Beispiel für die Verwendung von GestureDetector zur Erkennung langer Klicks:

<code class="kotlin">class MyActivity : AppCompatActivity() {

  private lateinit var gestureDetector: GestureDetector

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    gestureDetector = GestureDetector(this, LongClickListener())
  }

  override fun onTouchEvent(event: MotionEvent): Boolean {
    gestureDetector.onTouchEvent(event)
    return super.onTouchEvent(event)
  }

  inner class LongClickListener : OnGestureListener {

    override fun onLongPress(e: MotionEvent?) {
      // Handle long click here.
    }

    // Implement other gesture methods as needed.
  }
}</code>
Nach dem Login kopieren

Durch die Verwendung von GestureDetector können Sie dies ganz einfach erkennen lange Klicks in Ihren OpenGL-ES-Anwendungen.

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

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage