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

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

Susan Sarandon
Susan Sarandonオリジナル
2024-11-01 17:45:02787ブラウズ

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

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

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