我真不敢相信没有简单的方法可以做到像这样基础的事情...我想在用户点击地图标记后(类似于Google Maps应用程序中的效果)显示一个弹出框/气泡(一个LinearLayout)。当用户滚动地图时,它应该随着地图移动。如何最好地实现这一点?
一个想法是在我的Activity的根布局中放置LinearLayout,并在需要时显示它。但如何使它随地图移动?
另一种方法可能是创建一个覆盖层,通过onDraw绘制LinearLayout并提供布局触摸事件。这可行吗?
我真不敢相信没有简单的方法可以做到像这样基础的事情...我想在用户点击地图标记后(类似于Google Maps应用程序中的效果)显示一个弹出框/气泡(一个LinearLayout)。当用户滚动地图时,它应该随着地图移动。如何最好地实现这一点?
一个想法是在我的Activity的根布局中放置LinearLayout,并在需要时显示它。但如何使它随地图移动?
另一种方法可能是创建一个覆盖层,通过onDraw绘制LinearLayout并提供布局触摸事件。这可行吗?
View popUp = getLayoutInflater().inflate(R.layout.map_popup, map, false);
使用MapView.LayoutParams在ItemizedOverlay::onTap方法中,根据GeoPoint定位弹出窗口。当用户滚动地图时,弹出窗口会自动滚动(无需任何额外的代码)。基本上,弹出窗口会绑定到一个GeoPoint,如果用户缩放地图,弹出窗口的位置会自动调整。MapView map = (MapView) findViewById(R.id.mapview);
MapView.LayoutParams mapParams = new MapView.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT,
ViewGroup.LayoutParams.WRAP_CONTENT,
<geopoint>,
<x offset if required>,
<y offset like pinHeight>,
MapView.LayoutParams.BOTTOM_CENTER);
map.addView(popUp, mapParams);
以下是“缺失的组件”...
没有图标的气球: https://github.com/jgilfelt/android-mapviewballoons#readme
带有图标的气球(扩展Jeff Gilfelt的项目): https://github.com/galex/android-mapviewballoons