2016-08-31 2 views
1

Я действительно борюсь с Google Map, использую в эти дни вызов после вызова, и в сети нет хорошего примера или решения.Передача данных внутри кластерного маркера

Это мой код:

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

    View marker = (getActivity() 
       .getLayoutInflater()) 
       .inflate(R.layout.info_windows, null); 


    Bitmap bitmap = createDrawableFromView(
       getActivity(), marker); 

    markerOptions.icon(BitmapDescriptorFactory.fromBitmap(bitmap)); 

} 

Проблема в том, прежде чем отправить мнение на эту функцию, чтобы сделать изображение для маркеров, я пытаюсь установить некоторые данные в моем info_windows.xml, который поставляется с некоторыми ImageViews и TextViews. Но приложение зависает, у вас есть идея, как это сделать?

Bitmap bitmap = createDrawableFromView(
       getActivity(), marker); 
+0

Проверить это решение: http://stackoverflow.com/questions/25968486/how-to-add-info-window-for-clustering-marker-in-android В классе DefaultClusterRenderer вы не можете раздуть свой информационный взгляд –

+0

спасибо, но я не хочу добавлять infoWindow, что я хочу сделать, это манипулировать маркером кластера и отображать некоторые данные (средняя температура элементов кластера) – Blacksword

+0

вы можете вставить метод createDrawableFromView –

ответ

0

Я решить мою проблему, сделав IconGenerator objectand затем сделать вид от этого, как я это сделал:

первый я сделал объект:

private final IconGenerator mClusterIconGenerator = new IconGenerator(getActivity().getApplicationContext()); 

и вид, который содержит наш файл в формате XML нашего маркера costum:

View markerIcon = getActivity().getLayoutInflater().inflate(R.layout.marker_icon, null); 

затем установить вид на icongenerator:

mMarkerIconGenerator.setContentView(markerIcon); 

, то вам нужно, чтобы начать свой ImageView, TextView, ... затем установите значения, которые вы хотите показать в вашем Costum маркера, как это напр:

mMarkerViento = (ImageView) clusterIcon.findViewById(R.id.viento); 

затем внутри ovveride метода из:

@Override 
     protected void onBeforeClusterItemRendered(ItemCluster item, MarkerOptions markerOptions) 

       mMarkerViento.setImageResource(R.drawable.viento_ne2); 

и в конце концов вы сгенерировать растровый объект от генератора значок, как это:

mMarkerIconGenerator.setBackground(TRANSPARENT_DRAWABLE); // set the background as transparent 
    Bitmap bitmap = mMarkerIconGenerator.makeIcon(); // make a bitmap object from the icon object 
    markerOptions.icon(BitmapDescriptorFactory.fromBitmap(bitmap)); // set the bitmap as marker icon 

удачи и Tanx