Rumah > Java > javaTutorial > teks badan

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

DDD
Lepaskan: 2024-11-01 16:43:02
asal
309 orang telah melayarinya

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!