」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何偵測 Android OpenGL-ES 應用程式中的長點擊?

如何偵測 Android OpenGL-ES 應用程式中的長點擊?

發佈於2024-11-01
瀏覽:741

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

如何使用OpenGL-ES 偵測Android 中的長按

偵測使用者何時按下由OpenGL-ES 渲染的表面在應用程式中,開發人員通常使用onTouchEvent(MotionEvent event) 方法。但是,此方法沒有用於檢測長點擊的內建功能。

一個方法是註冊 ACTION_DOWN 事件。然後,在onTouchEvent中,安排一個Runnable在一定的時間延遲後運行。如果Runnable在運作之前被取消,由於ACTION_UP或ACTION_MOVE事件,則表示使用者沒有執行長按。

或者,Android提供了更複雜的解決方案:GestureDetector,可以使用檢測各種手勢,包括長按。

使用 GestureDetector

若要使用 GestureDetector,請依照下列步驟操作:

  1. 建立GestureDetector 的實例。
  2. 重寫 Activity 或 Fragment 中的 onTouchEvent 方法。
  3. 在 onTouchEvent 中,使用gestureDetector.onTouchEvent(event) 將觸控事件傳遞給 GestureDetector 實例。
  4. 向 GestureDetector 註冊 OnGestureListener 以偵測長按。

以下是使用 GestureDetector 偵測長按的範例:

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.
  }
}

透過使用 GestureDetector,您可以輕鬆偵測 OpenGL-ES 應用程式中的長按。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3