android - Google Maps v2 Marker zOrdering - 置顶

标签 android marker google-maps-android-api-2 z-order

我知道关于这个主题有一些主题,但我还没有找到足够好的解决方案。

我需要在所有其他标记的顶部放置一个标记。我该怎么做?

我尝试在所有其他标记之前和之后添加此标记,但是在 map View 上的顺序似乎是从底部(前)到顶部(后)。这是 Not Acceptable ,因为我想以所有标记前面的标记为中心。

我知道多边形可以是 zOrdered,但我更喜欢样式精美的图形!

事实上,您不能在标记上订购多边形!

“此多边形相对于其他叠加层(包括折线、GroundOverlays 和 TileOverlays,但不包括标记)的绘制顺序。具有较大 z-index 的叠加层将绘制在具有较小 z-indices 的叠加层上。具有相同 z-index 值的叠加层是任意的。默认为 0。 - https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/model/Polygon

有人对此有任何想法吗?

最佳答案

如果您确实显示了 InfoWindow,则 Aiden Fry 的答案有效。如果你不这样做,标记就不会出现在前面。无论如何,这是一个让它出现在前面的技巧:

创建一个显示 0dp 信息窗口的自定义 InfoWindowAdapter:

public class MapWindowAdapter implements GoogleMap.InfoWindowAdapter {
    private Context context = null;

    public MapWindowAdapter(Context context) {
        this.context = context;
    }

    // Hack to prevent info window from displaying: use a 0dp/0dp frame
    @Override
    public View getInfoWindow(Marker marker) {
        View v = ((Activity) context).getLayoutInflater().inflate(R.layout.no_info_window, null);
        return v;
    }

    @Override
    public View getInfoContents(Marker marker) {
        return null;
    }
}

这是布局的代码:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:orientation="vertical"
              android:layout_width="0dp"
              android:layout_height="0dp">
</LinearLayout>

设置 map 时,设置适配器和自定义 InfoWindowAdapter 和 OnMarkerClickListener(使用 showInfoWindow 并按照 AIden Fry 的建议返回 true):

mMap.setInfoWindowAdapter(new MapWindowAdapter(this));

//Call showInfoWindow to put marker on top of others.
myMarker.showInfoWindow();

这并不漂亮,但我没有找到任何其他方法来处理不使用信息窗口的 z-indexing。

关于android - Google Maps v2 Marker zOrdering - 置顶,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14771569/

相关文章:

android - 如何在 android 的单独线程中更新谷歌地图标记位置

javascript - ReactJs Leaflet Marker Location位置问题

在 fragment 中重新打开时,android maps v2 崩溃

android - 如何在两点之间沿着现有道路绘制路线?

android - 在将数据从 fragment 传递到 Activity 期间获得 Null 值

android - 从 Assets 目录读取文件抛出 FileNotFoundException

java - 它不会从 Fragment Activity ('FragmentOne' 上的 Firebase 加载,这是明确的,也不应该如此)

android - 图钉内带有用户图像的自定义标记

java - 不幸的是, "GoogleMapsV2"已停止

android - 在同一应用中使用谷歌地图和百度 map