Android 开发-百度地图自定义弹出窗口
我们使用百度地图的时候,点击地图上的
Marker,会弹出一个该地点详细信息的窗口,
如下左图所示,有时候,我们希望自己定义这个弹出窗口的内容,或者,干脆用自己的数
据来构造这样的弹出窗口,但是,在百度地图最新的
Android SDK 中,没有方便操作这种
弹出窗口的类,虽然有一个
PopupOverlay,但是它只支持将弹出内容转化为不多于三个
Bitmap,如果这个弹出窗口里想有按钮来响应点击事件,用这个就不能满足要求了,于是,
看了一遍百度地图覆盖物的
API,我决定用自定义 View 的方法来实现类似的效果,先贴一
下大体效果图,如下右图:
基本原
理就是用
ItemizedOverlay 来添
加附加物,在
OnTap
方法中向
MapView
上添加一个自定义的
View(如果已存在
就直接设为可见),
下面具体来介绍我的实现方法:
一、自定义覆盖物类:
MyPopupOverlay,这个类是最关键的一个类 ItemizedOverlay,
用于设置
Marker,并定义 Marker 的点击事件,弹出窗口,至于弹出窗口的内容,则通过定
义
Listener,放到 Activity 中去构造。如果没有特殊需求,这个类不需要做什么改动。代码如
下,
popupLinear 这个对象,就是加到地图上的自定义 View:
1
public
class
MyPopupOverlay
extends
ItemizedOverlay<OverlayItem> {
2