Intereting Posts
Метод переопределить, когда макет уничтожен в Android Ошибка сборки Android-градиента: ошибка захвата 137 База данных java.lang.illegalstateexception не открыта. GoogleApiAvailability пропущена с использованием firebase-сообщений: 9.4.0 Как заставить Android автоматически добавлять запятые в больших количествах? Как получить путь к ADB в build.gradle Возобновление последнего действия при нажатии на значок запуска Переход от вложенных общих элементов не начинается с ожидаемого места Расширяемое listview setselectionfromTop с анимацией и дополнением Объекты класса KSoap2 и KvmSerializable-Send со списком в webservice в java-андроиде Прозрачный AlertDialog имеет черный фон Что такое хорошая «активная установка» для бесплатного приложения для Android? В андроиде я могу создать разные фрагменты / действия в каждой вкладке, которые сохраняются во вкладках? Плавающая кнопка Action и ошибка инфляции библиотеки дизайна Объект refrence не установлен в экземпляр объекта Когда я создаю новое приложение для Android (Visual Studio)

Как изменить цвет кластеров на моей карте Google Android?

В настоящее время я пытаюсь изменить цвет значка кластера (по умолчанию синий), но я не могу понять его. Я уже настроил свой менеджер кластера и т. Д., И я сам вижу значок, но он синий. В настоящее время я использую настройку Google по умолчанию (см. Код ниже) для настройки моей карты. Любая помощь будет оценена

Благодаря,

Иаков

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 void getColor(int clusterSize) { return Color.BLUE // Return any color you want here. You can base it on clusterSize. } /* @Override protected void onBeforeClusterItemRendered(T item, MarkerOptions markerOptions) { // Use this method to set your own icon for the markers } @Override protected void onBeforeClusterRendered(Cluster<T> cluster, MarkerOptions markerOptions) { // Use this method to set your own icon for the clusters } */ }