Android での OpenGL-ES の長押し検出
Android プログラミングでは、長押しの検出はさまざまなユーザー インタラクションに不可欠です。従来、開発者はタッチ イベントを検出するために onTouchEvent(MotionEvent event) メソッドを利用してきました。ただし、この方法では、専用の長押し検出機能は提供されません。
代替アプローチ
質問で述べたように、回避策の 1 つは、ACTION_DOWN タッチと ACTION_UP タッチの両方に登録することです。イベントを検出し、その 2 つの間の経過時間を計算します。これにより長押し検出をシミュレートできますが、明示的なタイマー処理と手動のしきい値決定が必要です。
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>
この例では、GestureDetectorCompat が作成され、GestureDetector.OnGestureListener 実装で構成されます。 onDown メソッドと onShowPress メソッドは、それぞれ初期タッチと長押しの検出を処理します。 onTouchEvent メソッドは、タッチ イベント監視用の GestureDetector を登録します。
結論
GestureDetector を活用することで、Android OpenGL での長押しを検出するための信頼性が高く効率的なソリューションが得られます。手動によるタイマー処理やしきい値の決定を必要としない ES アプリケーション。
以上がAndroid OpenGL-ES アプリケーションの長押しを検出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。