Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengesan Acara Akhbar Lama dalam Android dengan OpenGL-ES?

Bagaimana untuk Mengesan Acara Akhbar Lama dalam Android dengan OpenGL-ES?

DDD
DDDasal
2024-11-01 16:43:02308semak imbas

How to Detect Long Press Events in Android with OpenGL-ES?

Mengesan Acara Akhbar Lama dalam Android dengan OpenGL-ES

Mengesan acara akhbar lama dalam Android adalah penting untuk menyediakan pengguna dengan pengalaman yang lebih interaktif. Walaupun kaedah onTouchEvent(MotionEvent event) boleh mengendalikan peristiwa sentuhan asas, kaedah ini tidak mempunyai kefungsian untuk mengesan tekanan lama yang bertahan untuk tempoh yang lama.

Menggunakan GestureDetector

Yang paling banyak penyelesaian yang disyorkan untuk mengesan tekanan lama adalah dengan menggunakan kelas GestureDetector. GestureDetector menyediakan set pendengar dan gerak isyarat yang komprehensif, termasuk tekan lama, ketik dua kali dan cubit. Untuk menggunakan GestureDetector, laksanakan antara muka OnGestureListener dan daftarkan pendengar anda dengan tika GestureDetector.

Pelaksanaan Tersuai dengan Runnable

Jika GestureDetector tidak sesuai untuk keperluan khusus aplikasi anda, anda boleh melaksanakan mekanisme pengesanan tekan lama tersuai menggunakan objek Runnable.

  1. Dalam kaedah onTouchEvent, mulakan Runnable yang akan mencetuskan acara "tekan lama" selepas tamat masa yang ditentukan (biasanya ViewConfiguration.getLongPressTimeout ()) apabila ACTION_DOWN dikesan.
  2. Jika peristiwa ACTION_UP atau ACTION_MOVE berlaku dalam tempoh tamat masa, batalkan Runnable.
  3. Jika Runnable selesai tanpa dibatalkan, permohonan anda boleh meneruskan dengan panjang pengendalian tekan.

Contoh Kod

Kod berikut menunjukkan pendekatan ini:

<code class="kotlin">private val handler = Handler()
private val longPressRunnable = Runnable {
    // Perform actions to handle long press
    Log.i("", "Long press detected!")
}

override fun onTouchEvent(event: MotionEvent): Boolean {
    when (event.action) {
        MotionEvent.ACTION_DOWN -> {
            handler.postDelayed(longPressRunnable, ViewConfiguration.getLongPressTimeout())
        }
        MotionEvent.ACTION_MOVE, MotionEvent.ACTION_UP -> {
            handler.removeCallbacks(longPressRunnable)
        }
    }
    return super.onTouchEvent(event)
}</code>

Kesimpulan

Kedua-dua GestureDetector dan kaedah Runnable menyediakan cara yang berkesan untuk mengesan tekanan lama dalam aplikasi Android. Pilih pendekatan yang paling sesuai dengan keperluan aplikasi anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengesan Acara Akhbar Lama dalam Android dengan OpenGL-ES?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn