android – 在MapView中的地图标记上方显示弹出式窗口

我无法理解,没有简单的方法来做这样一个基本的事情…我想在用户点击地图标记(与Google地图应用程序相似的东西)之后显示一个弹出式菜单(一个LinearLayout) 。当用户滚动地图时,它应该随着地图移动。这样做最好的方法是什么?

一个想法是让我的Activity的根布局中有LinearLayout,并在需要时显示它。但如何让它与地图一起移动?

另一种做法可能是创建一个Overlay,它绘制了onDraw中的LinearLayout,并给出了布局触摸事件。这可能吗?

最佳答案
我做的是:

通过将ItemizedOverlay进行子类化,将标记放在必需的GeoPoints中,如http://developer.android.com/guide/tutorials/views/hello-mapview.html所述

创建一个弹出视图通过膨胀从布局:

View popUp = getLayoutInflater().inflate(R.layout.map_popup, map, false);

使用MapView.LayoutParams可以在ItemizedOverlay< OverlayItem> :: onTap方法。当用户滚动地图时,弹出窗口将自动滚动(不带任何其他代码)。基本上弹出窗口被绑定到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);

转载注明原文:android – 在MapView中的地图标记上方显示弹出式窗口 - 代码日志