如何创建识别onTap方法的静态Mapview

时间:2012-11-05 07:41:08

标签: android onclick overlay android-mapview

我正在尝试开发一种布局,用于显示Google地图,其中包含在与此地图相关联的叠加图层上绘制的路线。我希望这个mapView是一个小的静态地图,以缩略图的形式显示用户所遵循的主要路线,然后如果用户点击它,意图会将您带到另一个活动,以全屏显示地图和路线和所有缩放功能。

问题是虽然我覆盖Overlay设置的onTap方法有新活动的意图,但只有当我将MapView设置为setEnabled(true)时它才有效,但如果我这样做,那么缩略图可以被用户拖动和移动。

如果不够清楚我很抱歉,但我不知道如何更好地解释它。

提前致谢

这是我的自定义类,它扩展了Overlay并覆盖了onTap方法:

class MapOverlay extends Overlay {

    @Override
    public boolean onTap(GeoPoint p, MapView mapView) {

        Intent i = new Intent(getApplicationContext(),
                RouteMapActivity.class);
        startActivity(i);

        return false;


    };

这是我的onCreate方法:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.detailrun_activity);

    map = (MapView) findViewById(R.id.mvMain);
    map.setEnabled(true);
    map.setClickable(true);
    MapOverlay mapOverlay = new MapOverlay();

    List<Overlay> listOfOverlays = map.getOverlays();
    projection = map.getProjection();
    listOfOverlays.clear();
    listOfOverlays.add(mapOverlay);

    double lat = 28.063119 * 1E6, longi = -82.41128 * 1E6;
    GeoPoint point = new GeoPoint((int) lat, (int) longi);

    MapController myMapController = map.getController();
    myMapController.setCenter(point);
}

目前我只是在两个GeoPoints之间画一条直线,我没有得到任何logcat错误。

确实绘制了具有路线的地图,并且覆盖了onTap方法,但是如果我的mapView被定义为已启用且可点击,它似乎只能识别点击,但如果我这样做,那么用户也可以移动只要他按住屏幕就拖动地图。

1 个答案:

答案 0 :(得分:1)

您可以按照this link的位置获取静态Google地图图片。您可以在imageview中显示并点击它可以定位具有MapView的新活动..我认为它可能是一个不错的选择。