Java Android catch两根手指轻触地图视图

Java Android catch两根手指轻触地图视图,java,android,android-mapview,gesture,pinch,Java,Android,Android Mapview,Gesture,Pinch,在我的代码中,我想添加双击放大和两个手指点击缩小(如谷歌地图)。我正在使用以下代码: gestureDetector = new GestureDetector(new DoubleTapDetector()); touchListener = new View.OnTouchListener() { public boolean onTouch(View view, MotionEvent motionEvent) { final int action = motion

在我的代码中,我想添加双击放大和两个手指点击缩小(如谷歌地图)。我正在使用以下代码:

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()而缩小一步也被捕获


如何避免这种情况?

如果您的条件满足,则返回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);     
    } 
 };

如果满足条件,则返回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);     
    } 
 };

若我将返回值更改为True,则会发生一些奇怪的情况—MapView变为白色,map shift上的标记无序移动,这很奇怪。返回true只会告诉android不再处理这个事件。也许你在onTwoFingersTap()中做错了什么;是的,有些奇怪的事情发生了。我也试过了,地图变白,标记移动..如果我将返回值改为True,会发生奇怪的事情-地图视图变白,地图移动上的标记无序移动这很奇怪。返回true只会告诉android不再处理这个事件。也许你在onTwoFingersTap()中做错了什么;是的,有些奇怪的事情发生了。我也试过了,地图变白,标记移动。。