ホームページ  >  記事  >  Java  >  Android OpenGL-ES アプリケーションでのロングクリックを検出するにはどうすればよいですか?

Android OpenGL-ES アプリケーションでのロングクリックを検出するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-03 07:40:03928ブラウズ

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

OpenGL-ES を使用して Android でロングクリックを検出する方法

OpenGL-ES によってレンダリングされているサーフェスをユーザーが押したときを検出するにはアプリケーションでは、開発者は通常、onTouchEvent(MotionEvent イベント) メソッドを使用します。ただし、このメソッドには長いクリックを検出する機能が組み込まれていません。

1 つの方法は、ACTION_DOWN イベントに登録することです。次に、onTouchEvent で、一定の時間遅延後に実行されるように Runnable をスケジュールします。 ACTION_UP または ACTION_MOVE イベントにより Runnable が実行前にキャンセルされた場合、ユーザーが長いクリックを実行しなかったことを示します。

代わりに、Android はより洗練されたソリューションである GestureDetector を提供しており、これを使用できます。長いクリックなどのさまざまなジェスチャを検出します。

GestureDetector の使用

GestureDetector を使用するには、次の手順に従います。

  1. GestureDetector のインスタンス。
  2. アクティビティまたはフラグメントで onTouchEvent メソッドをオーバーライドします。
  3. onTouchEvent で、gestureDetector.onTouchEvent(event) を使用してタッチ イベントを GestureDetector インスタンスに渡します。
  4. 長いクリックを検出するために、GestureDetector に OnGestureListener を登録します。

ここでは、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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。