2

在我的代码中,我想在双击时添加放大并在两指点击时缩小(如谷歌地图)。我正在使用这段代码:

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();被抓住了。

我怎样才能避免这种情况?

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 回答