android中集群组的自定义图标

tej*_*hah 5 android google-maps marker markerclusterer

我想用我的可绘制图标更改默认集群组图标。请检查我的集群程序代码。

MyClusterRenderer.java

    public  class MyClusterRenderer extends DefaultClusterRenderer<MyItem> {

          public MyClusterRenderer(Context context, GoogleMap map,
                                   ClusterManager<MyItem> clusterManager) {
              super(context, map, clusterManager);

          }

          @Override
          protected void onBeforeClusterItemRendered(MyItem item, MarkerOptions markerOptions) {
              super.onBeforeClusterItemRendered(item, markerOptions);

 markerOptions.title("").icon(BitmapDescriptorFactory.fromResource(R.mipmap.location_both));// for marker
      }

          @Override
          protected void onClusterItemRendered(final MyItem clusterItem, Marker marker) {
              super.onClusterItemRendered(clusterItem, marker);

          }


      }
Run Code Online (Sandbox Code Playgroud)

我的片段中的代码用于设置集群

  googleMap.clear();
        mClusterManager = new ClusterManager<MyItem>(getActivity(), googleMap);

        googleMap.setOnMarkerClickListener(mClusterManager);
        googleMap.setOnCameraChangeListener(mClusterManager);
        readItems();
        mClusterManager.setRenderer(new MyClusterRenderer(getActivity(), googleMap, mClusterManager));
Run Code Online (Sandbox Code Playgroud)

小智 7

最好的办法是

         private val clusterIconGenerator = IconGenerator(context)

         override fun getDescriptorForCluster(cluster: Cluster<PromotionMarker>): BitmapDescriptor {
            clusterIconGenerator.setBackground(ContextCompat.getDrawable(context, R.drawable.background_marker))
            val icon: Bitmap = clusterIconGenerator.makeIcon(cluster.size.toString())
            return BitmapDescriptorFactory.fromBitmap(icon)
         }
Run Code Online (Sandbox Code Playgroud)


Ary*_*afi 4

尝试更改onBeforeClusterRendered方法中的群集图标而不是onBeforeClusterItemRendered

@Override
protected void onBeforeClusterRendered(Cluster<MyItem> cluster, MarkerOptions markerOptions) {

    markerOptions.icon(BitmapDescriptorFactory.fromResource(R.mipmap.location_both));

}
Run Code Online (Sandbox Code Playgroud)