我不敢相信没有简单的方法可以做这样的基本事情...我想在用户单击地图标记后显示一个弹出窗口/气球(LinearLayout)(类似于 Google 地图应用程序中的内容) 。当用户滚动地图时,它应该随地图移动。做这个的最好方式是什么?
一种想法是在我的 Activity 的根布局中使用 LinearLayout 并在需要时显示它。但如何让它随着地图移动呢?
另一种方法可能是创建一个 Overlay,在 onDraw 中绘制 LinearLayout 并提供布局触摸事件。这可能吗?
我做的方法是:
通过子类化 ItemizedOverlay 将标记放置在所需的 GeoPoints 处,如中所述http://developer.android.com/guide/tutorials/views/hello-mapview.html http://developer.android.com/guide/tutorials/views/hello-mapview.html
通过从布局中膨胀来创建一个弹出视图:
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);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)