1

私のアプリは、単純なジェスチャ (スクロール、タップ、ロング タップ) とピンチ ズームを検出する必要があります。どちらの検出器もGestureDetector.SimpleOnGestureListener、タップ/スクロールおよびScaleGestureDetector.SimpleOnScaleGestureListenerピンチ ズームに対して、単独で正常に動作します。問題は、この 2 つを組み合わせることです。より具体的には、ピンチズームを開始するのが非常に難しいため、 のonScroll前にいくつかのイベントが生成されませんonScaleBegin

これを修正する良い方法はありますか?私が考えることができる唯一の解決策は、それらを処理する前にいくつかのイベントをバッファリングし(イベントキュー)、破棄onScroll/onTap一度処理せずにonScaleBegin検出することです。しかし、それは入力遅延を導入します (私のアプリには既にあり、さらに悪化させたくありません)。

4

1 に答える 1

3

これを試して:

@Override
public boolean onTouchEvent(MotionEvent event) {
    boolean res = mScaleGestureDetector.onTouchEvent(event);
    if (!mScaleGestureDetector.isInProgress()) {
        res = mGestureDetector.onTouchEvent(event);
    }
    return res;
}
于 2013-11-04T10:08:09.807 に答える