如何为我的 ClusterManager 使用 onClusterItemRendered 等函数?
How can I use functions like onClusterItemRendered for my ClusterManager?
我正在尝试在我的集群 Google 地图上获取对我的标记的引用(不使用 getMarkerCollections
)
但我找不到在哪里覆盖此功能。
我制作了一个典型的 ClusterManager
,效果很好,
但我无法在 class.
中的任何地方覆盖该函数
我需要为此定制 class 吗?我该怎么做?
要直接回答您的问题,您需要创建一个扩展 DefaultClusterRenderer 的自定义 class,然后覆盖 onClusterItemRendered()
方法:
public class MyRenderer extends DefaultClusterRenderer<MyItem> {
public MyRenderer(Context context, GoogleMap map, ClusterManager<MyItem> clusterManager) {
super(context, map, clusterManager);
}
@Override
protected void onClusterItemRendered(MyItem clusterItem,
Marker marker) {
super.onClusterItemRendered(clusterItem, marker);
//other stuff......
}
}
然后,您将调用 setRenderer()
方法并为其提供 MyRenderer 对象的新实例:
mClusterManager.setRenderer(new MyRenderer(this, mMap, mClusterManager));
我正在尝试在我的集群 Google 地图上获取对我的标记的引用(不使用 getMarkerCollections
)
但我找不到在哪里覆盖此功能。
我制作了一个典型的 ClusterManager
,效果很好,
但我无法在 class.
我需要为此定制 class 吗?我该怎么做?
要直接回答您的问题,您需要创建一个扩展 DefaultClusterRenderer 的自定义 class,然后覆盖 onClusterItemRendered()
方法:
public class MyRenderer extends DefaultClusterRenderer<MyItem> {
public MyRenderer(Context context, GoogleMap map, ClusterManager<MyItem> clusterManager) {
super(context, map, clusterManager);
}
@Override
protected void onClusterItemRendered(MyItem clusterItem,
Marker marker) {
super.onClusterItemRendered(clusterItem, marker);
//other stuff......
}
}
然后,您将调用 setRenderer()
方法并为其提供 MyRenderer 对象的新实例:
mClusterManager.setRenderer(new MyRenderer(this, mMap, mClusterManager));