目前我正在尝试更改群集图标的颜色(默认为蓝色),但我似乎无法弄清楚。我已经设置了我的集群管理器等,我可以看到图标本身,但它是蓝色的。我目前正在使用默认的 Google 设置(请参阅下面的代码)来设置我的 map 。任何帮助将不胜感激
谢谢,
雅各布
public class MainActivity extends Activity {
GoogleMap map;
ClusterManager mClusterManager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MapFragment mapFragment = (MapFragment) getFragmentManager()
.findFragmentById(R.id.map);
map = mapFragment.getMap();
setUpClusterer();
}
private void setUpClusterer() {
// Declare a variable for the cluster manager.
// Position the map.
map.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(51.503186, -0.126446), 10));
// Initialize the manager with the context and the map.
// (Activity extends context, so we can pass 'this' in the constructor.)
mClusterManager = new ClusterManager<MyItem>(this, map);
// Point the map's listeners at the listeners implemented by the cluster
// manager.
map.setOnCameraChangeListener(mClusterManager);
map.setOnMarkerClickListener(mClusterManager);
// Add cluster items (markers) to the cluster manager.
addItems();
}
private void addItems() {
// Set some lat/lng coordinates to start with.
double lat = 51.5145160;
double lng = -0.1270060;
// Add ten cluster items in close proximity, for purposes of this example.
for (int i = 0; i < 2; i++) {
double offset = i / 60d;
lat = lat + offset;
lng = lng + offset;
MyItem offsetItem = new MyItem(lat, lng);
mClusterManager.addItem(offsetItem);
}
}
}
class MyItem implements ClusterItem {
private final LatLng mPosition;
public MyItem(double lat, double lng) {
mPosition = new LatLng(lat, lng);
}
@Override
public LatLng getPosition() {
return mPosition;
}
}
最佳答案
正如 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.
}
}
关于java - 我怎样才能改变我的安卓谷歌地图上集群的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29785890/