MapView - 单击定位按钮时停止滚动

时间:2012-10-31 15:05:58

标签: android android-mapview

在下面的图片中(来自Polaris),您可以在ImageButton的右上方看到“找到”MapView

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

现在,当用户拖动地图然后(在拖动过程中)点击定位按钮时,它会在地图停止移动之前不执行任何操作。

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

以下是我尝试过的内容(thx to 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;
    }
}

似乎我不是唯一一个......

2 个答案:

答案 0 :(得分:0)

MapController中有方法

public void stopAnimation(boolean jumpToFinish)

Documentation

答案 1 :(得分: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);
        }
    };