Ich arbeite an neuen Google Map v2 API.Android GoogleMap 2 aktualisieren Informationen dynamisch in InfoWindow mit ImageView über Universal Image Loader
Ich habe ImageLoader verwendet, um Bilder dynamisch auf Marker anzuzeigen.
Aber das Problem ist, wenn ich onLoadingComplete() von Universal Image Loader bekommen habe, wird das ImageView weder automatisch noch manuell ungültig gemacht.
Nächstes Mal, wenn ich auf den gleichen Marker klicke, wird das Bild vom Cache des Universal Image Loader angezeigt.
Unten ist mein CustomInfoWindowAdapter Code:
private class CustomInfoWindowAdapter implements InfoWindowAdapter {
@Override
public View getInfoContents(Marker marker) {
return null;
}
@Override
public View getInfoWindow(Marker marker) {
final View mWindow = getLayoutInflater().inflate(R.layout.custom_info_window, null);
render(marker, mWindow);
return mWindow;
}
private void render(final Marker marker, View view) {
final String url = markers.get(marker.getId()).getStrProfilePic();
final ImageView image = ((ImageView) view.findViewById(R.id.badge));
Log.e(TAG, "URL : " + url);
if (url != null && !url.equalsIgnoreCase("null")
&& !url.equalsIgnoreCase("")) {
imageLoader.displayImage(url, image, options, new SimpleImageLoadingListener() {
@Override
public void onLoadingComplete(String imageUri, View view,
Bitmap loadedImage) {
super.onLoadingComplete(imageUri, view, loadedImage);
((ImageView) view).invalidate();
}
});
} else {
image.setImageResource(R.drawable.noimage);
}
final String title = marker.getTitle();
final TextView titleUi = ((TextView) view.findViewById(R.id.title));
if (title != null) {
titleUi.setText(title);
} else {
titleUi.setText("");
}
final String snippet = marker.getSnippet();
final TextView snippetUi = ((TextView) view.findViewById(R.id.snippet));
if (snippet != null) {
snippetUi.setText(snippet);
} else {
snippetUi.setText("");
}
}
}
I speichert Marker Ids in HashTable, wenn ich Marker hinzufügen. Und von ihrem werde ich die URL des Fotos erhalten.
Anzeigeoptionen:
Ich habe meine Klasse, wie unten zu aktualisieren, um die Image Customized? Aufbau? Rufen Sie 'displayImage (...)' im UI-Thread auf? – NOSTRA
In Render (letzte Marker-Marker, Ansicht anzeigen) habe ich imageLoader.displayImage (....) -Methode aufgerufen. –