gpt4 book ai didi

java - Osmdroid:单击时显示和隐藏标记描述

转载 作者:行者123 更新时间:2023-12-02 11:50:03 26 4
gpt4 key购买 nike

我正在使用 Android Studio 用 Ja​​va 编写一个应用程序。我已经使用 osmdroid 显示了 map ,添加了一些叠加层以在特殊位置显示标记,并向标记添加了标题和描述。

现在,我使用 setFocusItemsOnTap 方法在单击时显示标记的标题和描述。我的问题是,我无法在第二次单击时隐藏标记的标题和描述(因此,如果它已经显示)。有什么办法可以做到这一点吗?

或者,如果这不可能,是否有一种方法可以使用 setFocusItemsOnTab 方法一次仅显示一个标记的标题和描述?

public static List<OverlayItem> items = new ArrayList<OverlayItem>();

//[...]

items.add(new OverlayItem("uid1","Title", "Description", new GeoPoint(51.398,6.875)));

//[...]

List<OverlayItem> currentList;
currentList = new ArrayList<OverlayItem>();
currentList.add(items.get(i));

//[...]

final ItemizedOverlayWithFocus<OverlayItem> mOverlay = new ItemizedOverlayWithFocus<OverlayItem>(this, currentList, new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
@Override
public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
//here it should decide if the title & description is already shown or not. (true => hide it, false => display it)
return true;
}
@Override
public boolean onItemLongPress(final int index, final OverlayItem item) {
return false;
}
});

mOverlay.setFocusItemsOnTap(true);

我必须使用代码的这些部分,因为我想添加不同的标记,并且我希望能够集中所有标记。我还需要能够在运行时将它们添加到动态列表中。

感谢您的帮助!

最佳答案

如果您坚持使用 ItemizedIconOverlay,我相信您一次只能有一个弹出窗口。您必须继承 ItemizedIconOverlay 并重写绘制方法以支持一次渲染多个项目的弹出窗口。

我认为你在标记类(class)上会有更好的运气。它已经支持点击关闭功能。同样,一次只能显示一个标记弹出窗口。这可以通过为每个标记提供您自己的 InfoWindow 实例来覆盖。

关于java - Osmdroid:单击时显示和隐藏标记描述,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47955269/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com