如何在API v2的Google地图标记上添加按钮

4
我正在开发一款Android谷歌地图应用程序,但在标记地图上遇到了问题。
这个问题可能有一个简单的解决方案,但是在搜索后,我只找到了如何通过按钮添加标记的链接。我的需求不同:我需要一个具有相应对话框按钮的标记。
是否有人做过类似的事情?

Maps V2中的标记没有关联的“对话框”。您是指点击标记时出现的信息窗口吗? - CommonsWare
@CommonsWare:非常抱歉,但是确实是那个信息窗口。 - jhc
2个回答

7
虽然您可以创建一个 InfoWindowAdapter 并通过 setInfoWindowAdapter() 将其附加到您的 GoogleMap 上,以定制信息窗口的内容以包含一个 Button,但该 Button 将无法点击。您从 InfoWindowAdapter 的 getInfoContents() 中返回的 View 不会显示。相反,它将被转换为位图,并显示该图像。
但是,您可以通过在 GoogleMap 上注册的 OnInfoWindowClickListener 通过 setOnInfoWindowClickListener() 找出用户何时点击了信息窗口。

1
谢谢!之前我使用对话框而不是信息窗口,所以没有找到好的帮助。问题解决了! - jhc

2
@CommonsWare所提到的有关InfoContent转换为Bitmap的评论是正确的。因此,您不能使用InfoWindows。尝试使用GoogleMap.OnMarkerClickListener事件代替,在MapView上方显示自己的视图。GoogleMap.OnMarkerClickListener将帮助您将点击的标记用作参数。
如果您想在正确的位置显示视图,必须计算屏幕位置。使用Projection的toScreenLocation(LatLng location)方法返回Point,将LatLng转换为相对于GoogleMap的屏幕位置。
有关更多信息,请参见Projection

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接