我可以将自定义控件作为标记添加到 OSMBONUSPACK 中吗?
我在名为 MyMarkerItem.xml 的 Android xml 文件中创建了一些按钮和图像
我想要类似 MyMarker.setDesign(R.layout.MyMarkerItem);
谢谢
最佳答案
好的,我知道您希望标记图标本身不是一个简单的位图,而是一个布局。
您可以做的是使用标记信息窗口“代替”标记图标。
首先,创建一个新类 CustomInfoWindow,它继承自 MarkerInfoWindow(标记的默认 InfoWindow),并使用您自己的布局:
public class CustomInfoWindow extends MarkerInfoWindow {
public CustomInfoWindow(MapView mapView) {
super(my_own_layout, mapView);
}
}
CustomInfoWindow myCustomInfoWindow = new CustomInfoWindow(mapView);
然后,在创建标记后,执行以下操作:
- 将标记图标设置为 1x1 像素大小的位图,完全透明:setIcon(mySmall_InvisibleIcon)
- 将标记信息窗口设置为您自己的:setInfoWindow(myCustomInfoWindow)
- 根据布局的“外观”,将信息窗口“ anchor ”设置为最合适、最自然的位置:也许是 setInfoWindowAnchor(ANCHOR_CENTER, ANCHOR_CENTER) ?
- 强制打开信息窗口:showInfoWindow()
所有这些步骤都相当简单。
但是,我猜您希望当用户单击您的布局按钮时会发生一些行为。 因此,在您的 CustomInfoWindow 代码中,您肯定需要做一些工作 => follow this tutorial 。
关于java - 添加自定义控件作为标记 OSMDROID BONUS PACK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59589701/