Contenidos dinámicos en Maps V2 InfoWindow
Quiero mostrar un InfoWindow en marcadores en un fragmento de Maps V2. Lo que quiero decir es que quiero mostrar los mapas de bits que se cargan dinámicamente desde la web conUniversal Image Downloader.
Este es mi InfoWindowAdapter:
class MyInfoWindowAdapter implements InfoWindowAdapter {
private final View v;
MyInfoWindowAdapter() {
v = getLayoutInflater().inflate(R.layout.infowindow_map,
null);
}
@Override
public View getInfoContents(Marker marker) {
Item i = items.get(marker.getId());
TextView tv1 = (TextView) v.findViewById(R.id.textView1);
ImageView iv = (ImageView) v.findViewById(R.id.imageView1);
tv1.setText(i.getTitle());
DisplayImageOptions options = new DisplayImageOptions.Builder()
.delayBeforeLoading(5000).build();
imageLoader.getMemoryCache();
imageLoader.displayImage(i.getThumbnailUrl(), iv, options,
new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
Log.d("MAP", "Image loaded " + imageUri);
}
@Override
public void onLoadingCancelled(String imageUri,
View view) {
// TODO Auto-generated method stub
}
});
return v;
}
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
return null;
}
}
Tengo 2 problemas con esto:
Como nosotrossaber laInfoWindow
Se dibuja y posteriormente se modifica (en mi caso el nuevoBitMap
sobre elImageView
) no se muestran /InfoWindow
no se está actualizando. ¿Cómo puedo "notificar" el InfoWindow para que se recargue solo cuando elimageLoader
ha terminado? Cuando puse
marker.showInfoWindow()
dentroonLoadingComplete
creó un bucle infinito donde el marcador se abrirá, comenzará a cargar la imagen, se abrirá, etc.
Mi segundo problema es que en una conexión de red lenta (simulada con el retraso de 5000 ms en el código), elImageView
en elInfoWindow
siempre mostrará la última imagen cargada, sin importar si esa imagen pertenece a esaImageWindow
/ Marker
.
¿Alguna sugerencia sobre cómo implementar apropiadamente esto?