Android 中針對OpenGL-ES 的長按偵測
在Android 程式設計中,偵測長按對於各種使用者互動至關重要。傳統上,開發人員依賴 onTouchEvent(MotionEvent event) 方法來偵測觸控事件。但是,此方法不提供專用的長按檢測功能。
替代方法
正如您的問題中提到的,一種解決方法包括註冊 ACTION_DOWN 和 ACTION_UP 觸摸事件併計算兩者之間經過的時間。雖然這可以模擬長按檢測,但它需要明確的計時器處理和手動閾值確定。
利用 GestureDetector
幸運的是,Android 為長按偵測提供了更強大的解決方案:GestureDetector 類別。 GestureDetector 透過自動監控觸控事件和偵測手勢(包括長按)來簡化流程。以下是如何實現它:
<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>
在此範例中,使用 GestureDetector.OnGestureListener 實作建立並配置 GestureDetectorCompat。 onDown 和 onShowPress 方法分別處理初始觸控和長按偵測。 onTouchEvent 方法註冊 GestureDetector 來監控觸控事件。
結論
透過利用GestureDetector,您可以獲得可靠且高效的解決方案來檢測Android OpenGL 中的長按- ES 應用程式無需手動計時器處理或閾值確定。
以上是如何偵測 Android OpenGL-ES 應用程式中的長按?的詳細內容。更多資訊請關注PHP中文網其他相關文章!