2012-10-31 40 views
1

在下图中(从Polaris),您可以在MapView的右上方看到一个“定位”ImageButtonMapView - 点击定位按钮时停止滚动

我有一个自定义的(一个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; 
    } 
} 

看来我不是唯一一个...

回答

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); 
     } 
    }; 
+0

这不是我想要的。我有我自己的方法,而且效果很好。我有一个按钮,它的效果很好。我想要的是'stopAnimation()'方法的工作。 – shkschneider