Java 如何更改android Google地图上集群的颜色?

Java 如何更改android Google地图上集群的颜色?,java,android,google-maps,Java,Android,Google Maps,目前我正在尝试更改群集图标的颜色(默认为蓝色),但我似乎无法理解。我已经设置了集群管理器等,我可以看到图标本身,但它是蓝色的。我目前正在使用默认的谷歌设置(见下面的代码)来设置我的地图。任何帮助都将不胜感激 谢谢 雅各布 公共类MainActivity扩展活动{ 谷歌地图; ClusterManager McClusterManager; @凌驾 创建时受保护的void(Bundle savedInstanceState){ super.onCreate(savedInstanceState);

目前我正在尝试更改群集图标的颜色(默认为蓝色),但我似乎无法理解。我已经设置了集群管理器等,我可以看到图标本身,但它是蓝色的。我目前正在使用默认的谷歌设置(见下面的代码)来设置我的地图。任何帮助都将不胜感激

谢谢

雅各布

公共类MainActivity扩展活动{
谷歌地图;
ClusterManager McClusterManager;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapFragment MapFragment=(MapFragment)getFragmentManager()
.findFragmentById(R.id.map);
map=mapFragment.getMap();
setupcluster();
}
私有void setupcluster(){
//为集群管理器声明一个变量。
//定位地图。
地图。移动摄像机(CameraUpdateFactory.newLatLngZoom(新LatLng(51.503186,-0.126446),10));
//使用上下文和映射初始化管理器。
//(活动扩展了上下文,因此我们可以在构造函数中传递“this”。)
mClusterManager=newclustermanager(这个,映射);
//将映射的侦听器指向集群实现的侦听器
//经理。
map.SetonCamerachenglistener(McClusterManager);
setOnMarkerClickListener(mClusterManager);
//将群集项目(标记)添加到群集管理器。
addItems();
}
私有void附加项(){
//首先设置一些lat/lng坐标。
双lat=51.5145160;
双液化天然气=-0.1270060;
//为了本例的目的,添加十个近距离的集群项目。
对于(int i=0;i<2;i++){
双偏移=i/60d;
横向=横向+偏移;
液化天然气=液化天然气+补偿;
MyItem offsetItem=新的MyItem(lat、lng);
mClusterManager.addItem(offsetItem);
}
}
}
类MyItem实现ClusterItem{
私人最终分配;
公共MyItem(双lat、双lng){
mPosition=新板条箱(板条箱,lng);
}
@凌驾
公共位置(){
回输;
}
}

正如Verma在评论中指出的,可以为您的集群实现一个完全可定制的图标。如果您只想更改默认图标中的背景色,则此代码即可

无论哪种方式,都需要为ClusterManager设置渲染器:

mClusterManager.setRenderer(new CustomClusterRenderer(MainActivity.this, map, mClusterManager));
对于CustomClusterRenderer,您可以像这样扩展DefaultClusterRenderer:

public class CustomClusterRenderer extends DefaultClusterRenderer<MyItem> {

    public CustomClusterRenderer(Context context, GoogleMap map, ClusterManager<MyItem> clusterManager) {
        super(context, map, clusterManager
    }

    @Override
    protected int getColor(int clusterSize) {
        return Color.BLUE // Return any color you want here. You can base it on clusterSize.
    }
}
公共类CustomClusterRenderer扩展了DefaultClusterRenderer{
公共CustomClusterRenderer(上下文上下文、Google地图、ClusterManager ClusterManager){
超级(上下文、映射、群集管理器)
}
@凌驾
受保护的int getColor(int clusterSize){
return Color.BLUE//在此处返回您想要的任何颜色。您可以根据clusterSize确定颜色。
}
}

您可以尝试为集群设置自定义图标
public class CustomClusterRenderer extends DefaultClusterRenderer<MyItem> {

    public CustomClusterRenderer(Context context, GoogleMap map, ClusterManager<MyItem> clusterManager) {
        super(context, map, clusterManager
    }

    @Override
    protected int getColor(int clusterSize) {
        return Color.BLUE // Return any color you want here. You can base it on clusterSize.
    }
}