要在osmdroid的ItemizedIconOverlay上添加自定义弹窗,并且一直显示,可以按照以下步骤进行操作:

  1. 创建一个类来表示自定义的弹窗,例如CustomInfoWindow:
public class CustomInfoWindow extends MarkerInfoWindow {
    public CustomInfoWindow(int layoutResId, MapView mapView) {
        super(layoutResId, mapView);
    }

    @Override
    public void onOpen(Object item) {
        // 在这里可以对弹窗进行设置,例如设置内容、样式等
        super.onOpen(item);
    }
}
  1. 在你的Activity或Fragment中创建ItemizedIconOverlay,并设置自定义的弹窗:
ItemizedIconOverlay<OverlayItem> overlay = new ItemizedIconOverlay<>(items, drawable, new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
    @Override
    public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
        // 点击标记时的操作,例如弹窗显示等
        CustomInfoWindow infoWindow = new CustomInfoWindow(R.layout.custom_info_window, mapView);
        overlay.setInfoWindow(infoWindow);
        overlay.selectMarker(item);
        return true;
    }

    @Override
    public boolean onItemLongPress(final int index, final OverlayItem item) {
        // 长按标记时的操作
        return false;
    }
});
  1. 设置ItemizedIconOverlay的弹窗一直显示:
mapView.setMultiTouchControls(true);
mapView.getOverlays().add(overlay);
overlay.setFocusItemsOnTap(true);
overlay.setInfoWindow(new CustomInfoWindow(R.layout.custom_info_window, mapView));

通过以上步骤,你可以在ItemizedIconOverlay上添加自定义弹窗,并且使其一直显示。请根据你的需求进行相应的修改和调整

osmdroid ItemizedIconOverlay 添加自定义弹窗并且一直显示

原文地址: http://www.cveoy.top/t/topic/hyCs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录