1

在下图中(来自Polaris),您可以ImageButtonMapView.

我有一个自定义的 (an ImageView) 并自己处理它的点击。

现在,当用户拖动地图然后(在拖动过程中)单击定位按钮时,它什么也不做,直到地图停止移动。

我想要完成的是阻止地图滚动。

这是我尝试过的(感谢 blazzerbg):mMap.getController().stopAnimation(false); 但是不行。

我知道我有这些功能,也许它们会干扰?

@Override
public boolean onTouch(View view, MotionEvent event) {
    // Disables multi-touch (zoom in/out)
    if (event.getPointerCount() > 1) {
        return true;
    }

    // Get the map if a drag is done
    if (event.getAction() == MotionEvent.ACTION_UP) {
        // ...
    }

    // Disables double-tap
    return mGestureDetector.onTouchEvent(event);
}

private class GestureListener extends GestureDetector.SimpleOnGestureListener {

    @Override
    public boolean onDoubleTap(MotionEvent event) {
        return true;
    }
}

看来我不是一个人...

4

2 回答 2

0

您可以在任何情况下禁用用户跟踪按钮:有这样的方法:

 /**
     * Enable/disable user tracking on this {@link PolarisMapView}.
     * 
     * @param enabled True if user tracking is enabled, false otherwise.
     */
    public void setUserTrackingButtonEnabled(boolean enabled) {

此方法附加一个侦听器,用于根据用户位置使视图居中:

private final OnClickListener mOnUserTrackingButtonClickListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
            MapViewUtils.smoothCenterOnUserLocation(PolarisMapView.this, mMyLocationOverlay, R.string.polaris__unable_to_locate_you);
        }
    };
于 2012-10-31T15:38:47.897 回答
0

MapController中有方法

public void stopAnimation(boolean jumpToFinish)

文档

于 2012-10-31T15:09:10.040 回答