2

私のコードでは、ダブルタップでズームインし、2本指タップでズームアウトします(Googleマップなど)。私はこのコードを使用しています:

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);
    }
};

ダブルタップは問題なく動作しますが、マップをピンチしようとすると、通常どおりズームしますが、1ステップズームアウトすることonTwoFingersTap();もあります。

どうすればこれを回避できますか?

4

1 に答える 1

0

条件が満たされている場合は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);     
    } 
 };
于 2011-11-21T04:47:16.223 に答える