OpenGL-ES を使用して Android でロングクリックを検出する方法
OpenGL-ES によってレンダリングされているサーフェスをユーザーが押したときを検出するにはアプリケーションでは、開発者は通常、onTouchEvent(MotionEvent イベント) メソッドを使用します。ただし、このメソッドには長いクリックを検出する機能が組み込まれていません。
1 つの方法は、ACTION_DOWN イベントに登録することです。次に、onTouchEvent で、一定の時間遅延後に実行されるように Runnable をスケジュールします。 ACTION_UP または ACTION_MOVE イベントにより Runnable が実行前にキャンセルされた場合、ユーザーが長いクリックを実行しなかったことを示します。
代わりに、Android はより洗練されたソリューションである GestureDetector を提供しており、これを使用できます。長いクリックなどのさまざまなジェスチャを検出します。
GestureDetector の使用
GestureDetector を使用するには、次の手順に従います。
ここでは、GestureDetector を使用して長いクリックを検出する例を示します:
<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>
GestureDetector を使用すると、簡単に検出できます。 OpenGL-ES アプリケーションで長押ししてください。
以上がAndroid OpenGL-ES アプリケーションでのロングクリックを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。