OpenGL-ES を使用した Android での長押しイベントの検出
Android での長押しイベントの検出は、よりインタラクティブなエクスペリエンスをユーザーに提供するために不可欠です。 onTouchEvent(MotionEvent イベント) メソッドは基本的なタッチ イベントを処理できますが、長時間にわたる長押しを検出する機能がありません。
GestureDetector の使用
長押しを検出するための推奨ソリューションは、GestureDetector クラスを使用することです。 GestureDetector は、長押し、ダブルタップ、ピンチなどのリスナーとジェスチャの包括的なセットを提供します。 GestureDetector を使用するには、OnGestureListener インターフェイスを実装し、GestureDetector インスタンスにリスナーを登録します。
Runnable によるカスタム実装
GestureDetector がアプリケーションの特定のニーズに適していない場合は、 Runnable オブジェクトを使用して、カスタムの長押し検出メカニズムを実装できます。
コード例
次のコードは、このアプローチを示しています。
<code class="kotlin">private val handler = Handler() private val longPressRunnable = Runnable { // Perform actions to handle long press Log.i("", "Long press detected!") } override fun onTouchEvent(event: MotionEvent): Boolean { when (event.action) { MotionEvent.ACTION_DOWN -> { handler.postDelayed(longPressRunnable, ViewConfiguration.getLongPressTimeout()) } MotionEvent.ACTION_MOVE, MotionEvent.ACTION_UP -> { handler.removeCallbacks(longPressRunnable) } } return super.onTouchEvent(event) }</code>
結論
GestureDetector と Runnable メソッドはどちらも、Android アプリケーションの長押しを検出する効果的な方法を提供します。アプリケーションの要件に最も適したアプローチを選択してください。
以上がOpenGL-ES を使用して Android で長押しイベントを検出する方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。