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