有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java ItemizedOverlayWithFocus在聚焦osmdroid时显示另一个覆盖

我对ItemizedOverlayWithFocus有一个问题,当尝试一个osmdorid示例时,它工作得很好。我试图更改标记的图标,但出现了一个问题。点击一个项目时,它会显示另一个带有说明的覆盖图,而不是显示项目上方的说明

    final Context context = getActivity();

    /* Create a static ItemizedOverlay showing some Markers on various cities. */
    final ArrayList<OverlayItem> items = new ArrayList<>();

    OverlayItem overlayItem;
       Drawable marker = getResources().getDrawable(R.drawable.ic_hospital_);
    for (Hospital h : hospitals) {
        overlayItem = new OverlayItem(
                h.getName(), h.getAdresse(), new GeoPoint(h.getLatitude(), h.getLongitude()));
        overlayItem.setMarker(marker);
        items.add(overlayItem);
    }

    /* OnTapListener for the Markers, shows a simple Toast. */
    final ItemizedOverlayWithFocus itemizedOverlayWithFocus = new ItemizedOverlayWithFocus<OverlayItem>(items,
            new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
                @Override
                public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
                    Toast.makeText(
                            context,
                            "Item '" + item.getTitle() + "' (index=" + index
                                    + ") got single tapped up", Toast.LENGTH_LONG).show();
                    return true;
                }

                @Override
                public boolean onItemLongPress(final int index, final OverlayItem item) {

                    return false;
                }
            },context);

      itemizedOverlayWithFocus.setFocusItemsOnTap(true);
    //  itemizedOverlayWithFocus.setFocusedItem(0);
    itemizedOverlayWithFocus.setOnFocusChangeListener(new ItemizedOverlay.OnFocusChangeListener() {
        @Override
        public void onFocusChanged(ItemizedOverlay<?> overlay, OverlayItem newFocus) {
            itemizedOverlayWithFocus.unSetFocusedItem();
            itemizedOverlayWithFocus.setFocusedItem(newFocus);
        }
    });

    itemizedOverlayWithFocus.setMarkerBackgroundColor(Color.BLUE);
    itemizedOverlayWithFocus.setMarkerTitleForegroundColor(Color.WHITE);
    itemizedOverlayWithFocus.setMarkerDescriptionForegroundColor(Color.WHITE);
    itemizedOverlayWithFocus.setDescriptionBoxPadding(15);

    mapView.getOverlays().add(itemizedOverlayWithFocus);

    RotationGestureOverlay mRotationGestureOverlay = new RotationGestureOverlay(mapView);
    mRotationGestureOverlay.setEnabled(false);
    mapView.getOverlays().add(mRotationGestureOverlay);

    MinimapOverlay miniMapOverlay = new MinimapOverlay(context,
            mapView.getTileRequestCompleteHandler());
    mapView.getOverlays().add(miniMapOverlay);


    // Zoom and center on the focused item.

    setHasOptionsMenu(true);
}

我的地图上有两个项目:

map with two items

当点击覆盖时,它会显示另一个带有描述的项目:

map with focused item and visible defect


共 (0) 个答案