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()中做错了什么;是的,有些奇怪的事情发生了。我也试过了,地图变白,标记移动。。