Динамическое содержимое в Maps V2 InfoWindow
Я хочу показать InfoWindow на маркерах во фрагменте Maps V2. Дело в том, что я хочу показать битовые карты, которые динамически загружаются из Интернета сУниверсальный загрузчик изображений.
Это мой 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;
}
}
У меня есть 2 проблемы с этим:
Как мызнать InfoWindow
рисуется и позже меняется на него (в моем случае новыйBitMap
наImageView
) не показаны /InfoWindow
не обновляется. Как я могу "поставить в известность" информационное окно, чтобы перезагрузить себя, когдаimageLoader
закончил? Когда я положил
marker.showInfoWindow()
вonLoadingComplete
он создал бесконечный цикл, где маркер всплывает, начинает загружать изображение, всплывает сам и т.д.
Моя вторая проблема заключается в том, что при медленном сетевом соединении (смоделированном с задержкой в коде 5000 мс)ImageView
вInfoWindow
всегда будет отображать последнее загруженное изображение, независимо от того, принадлежит ли оно к этому /.ImageWindow
Marker
Любые предложения о том, как правильно реализовать это?