Pengesanan Tekan Lama dalam Android untuk OpenGL-ES
Dalam pengaturcaraan Android, mengesan tekanan lama adalah penting untuk pelbagai interaksi pengguna. Secara tradisinya, pembangun telah bergantung pada kaedah onTouchEvent(MotionEvent) untuk mengesan peristiwa sentuhan. Walau bagaimanapun, kaedah ini tidak menawarkan fungsi pengesanan tekan lama khusus.
Pendekatan Alternatif
Seperti yang dinyatakan dalam soalan anda, satu pendekatan penyelesaian melibatkan pendaftaran untuk kedua-dua sentuhan ACTION_DOWN dan ACTION_UP peristiwa dan mengira masa berlalu antara keduanya. Walaupun ini boleh mensimulasikan pengesanan tekan lama, ia memerlukan pengendalian pemasa yang jelas dan penentuan ambang manual.
Menggunakan GestureDetector
Nasib baik, Android menyediakan penyelesaian yang lebih mantap untuk pengesanan tekan lama : kelas GestureDetector. GestureDetector memudahkan proses dengan memantau peristiwa sentuhan secara automatik dan mengesan gerak isyarat, termasuk menekan lama. Begini cara untuk melaksanakannya:
<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>
Dalam contoh ini, GestureDetectorCompat dicipta dan dikonfigurasikan dengan pelaksanaan GestureDetector.OnGestureListener. Kaedah onDown dan onShowPress mengendalikan pengesanan sentuhan awal dan tekan lama, masing-masing. Kaedah onTouchEvent mendaftarkan GestureDetector untuk pemantauan acara sentuh.
Kesimpulan
Dengan memanfaatkan GestureDetector, anda memperoleh penyelesaian yang boleh dipercayai dan cekap untuk mengesan tekanan lama dalam Android OpenGL anda- Aplikasi ES tanpa memerlukan pengendalian pemasa manual atau penentuan ambang.
Atas ialah kandungan terperinci Bagaimana untuk Mengesan Tekan Lama dalam Aplikasi Android OpenGL-ES?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!