Rumah > Java > javaTutorial > Bagaimana untuk Mengesan Klik Panjang dalam Aplikasi OpenGL-ES Android?

Bagaimana untuk Mengesan Klik Panjang dalam Aplikasi OpenGL-ES Android?

Patricia Arquette
Lepaskan: 2024-11-03 07:40:03
asal
963 orang telah melayarinya

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

Cara Mengesan Klik Panjang dalam Android Menggunakan OpenGL-ES

Untuk mengesan apabila pengguna menekan permukaan yang diberikan oleh OpenGL-ES aplikasi, pembangun biasanya menggunakan kaedah onTouchEvent(MotionEvent event). Walau bagaimanapun, kaedah ini tidak mempunyai fungsi terbina dalam untuk mengesan klik panjang.

Satu pendekatan ialah mendaftar untuk acara ACTION_DOWN. Kemudian, dalam onTouchEvent, jadualkan Runnable untuk dijalankan selepas kelewatan masa tertentu. Jika Runnable dibatalkan sebelum ia dijalankan, disebabkan oleh peristiwa ACTION_UP atau ACTION_MOVE, ini menunjukkan bahawa pengguna tidak melakukan klik yang panjang.

Sebagai alternatif, Android menyediakan penyelesaian yang lebih canggih: GestureDetector, yang boleh digunakan untuk mengesan pelbagai gerak isyarat, termasuk klik lama.

Menggunakan GestureDetector

Untuk menggunakan GestureDetector, ikut langkah berikut:

  1. Buat instance of GestureDetector.
  2. Timpa kaedah onTouchEvent dalam aktiviti atau serpihan anda.
  3. Dalam onTouchEvent, hantar acara sentuh kepada tika GestureDetector menggunakan gestureDetector.onTouchEvent(event).
  4. Daftarkan OnGestureListener dengan GestureDetector untuk mengesan klik panjang.

Berikut ialah contoh penggunaan GestureDetector untuk mengesan klik panjang:

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

Dengan menggunakan GestureDetector, anda boleh mengesan dengan mudah klik lama dalam aplikasi OpenGL-ES anda.

Atas ialah kandungan terperinci Bagaimana untuk Mengesan Klik Panjang dalam Aplikasi OpenGL-ES Android?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan