java - 添加自定义控件作为标记 OSMDROID BONUS PACK

标签 java android osmdroid osmbonuspack

我可以将自定义控件作为标记添加到 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/

相关文章:

java - 从 Intent 返回后无法访问附加功能

android - 如何将自定义 View 放入自定义 viewGroup/Layout 中

android - Osmdroid 离线文件

java - 子类中忽略了 AdditionalCriteria

java - 使用 NIO 将 Tomcat 服务器作为 Windows 服务运行

android - Android 中的折叠底栏(如 Google Music)

android - 重复类 MultiDex$V14.class

java - ResourceProxy 类应该做什么?

java - 如何删除标记图标

java - 尝试让 java 套接字程序工作,但得到 "java.net.BindException: Address already in use 6666 "