【问题标题】:Android catch two fingers tap on MapViewAndroid抓住两个手指点击MapView
【发布时间】:2013-03-07 14:13:38
【问题描述】:

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

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();也被捕获了。

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

【问题讨论】:

    标签: java android android-mapview gesture pinch


    【解决方案1】:

    如果你的条件满足则返回真:

        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 变成白色并且地图移位上的标记正在混乱地移动
    • 这很奇怪。返回 true 只会告诉 android 不再处理 onToucheEvent 。也许你在 onTwoFingersTap(); 中做错了什么
    • 是的,发生了一些奇怪的事情。我也试过这个,地图变白,标记移动..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    相关资源
    最近更新 更多