gpt4 book ai didi

android - Google Maps v2 Marker zOrdering - 置顶

转载 作者:IT老高 更新时间:2023-10-28 22:19:46 26 4
gpt4 key购买 nike

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

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

我尝试在所有其他标记之前和之后添加此标记,但是在 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/

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