Rumah  >  Artikel  >  Java  >  Bagaimana untuk Mengesan Tekan Lama dalam Aplikasi Android OpenGL-ES?

Bagaimana untuk Mengesan Tekan Lama dalam Aplikasi Android OpenGL-ES?

Susan Sarandon
Susan Sarandonasal
2024-11-01 17:45:02787semak imbas

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

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!

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