Android поймать двумя пальцами нажмите на MapView - PullRequest
2 голосов
/ 21 ноября 2011

В моем коде я хочу добавить увеличение при двойном нажатии и уменьшение при нажатии двумя пальцами (например, Google Maps).Я использую этот код:

gestureDetector = new GestureDetector(new DoubleTapDetector());
touchListener = new View.OnTouchListener() {
    public boolean onTouch(View view, MotionEvent motionEvent) {
        final int action = motionEvent.getAction();
        final int fingersCount = motionEvent.getPointerCount();

        if ((action == MotionEvent.ACTION_POINTER_UP) && (fingersCount == 2)) {
            onTwoFingersTap();

            return false;
        }

        return gestureDetector.onTouchEvent(motionEvent);
    }
};

Двойное касание работает нормально, но когда я пытаюсь ущипнуть карту, оно масштабируется как обычно, но уменьшается на один шаг, потому что onTwoFingersTap(); тоже ловится.

Как мне избежать этого?

1 Ответ

0 голосов
/ 21 ноября 2011

верните true, если ваше состояние удовлетворено:

    touchListener = new View.OnTouchListener() {    
    public boolean onTouch(View view, MotionEvent motionEvent) {    
        final int action = motionEvent.getAction();       
        final int fingersCount = motionEvent.getPointerCount();        
        if ((action == MotionEvent.ACTION_POINTER_UP) && (fingersCount == 2)) {             
            onTwoFingersTap();       
            return true;         
        } 
     return gestureDetector.onTouchEvent(motionEvent);     
    } 
 };
...