Я использую библиотеку утилит Google Maps Android API и загружаю определенные изображения из Интернета, которые я хочу использовать в качестве маркеров. То, как я это делаю, похоже на следующий фрагмент:
class MarkerItemClusterRenderer extends DefaultClusterRenderer<MarkerItem> {
...
@Override
protected void onBeforeClusterItemRendered(MarkerItem item,
final MarkerOptions markerOptions) {
super.onBeforeClusterItemRendered(item, markerOptions);
mImageLoader.get(item.getImageUrl(), new ImageListener() {
@Override
public void onErrorResponse(VolleyError error) {
Log.i("XXX", error.toString());
}
@Override
public void onResponse(ImageContainer response, boolean isImmediate) {
if (response != null && response.getBitmap() != null) {
mImageIcon.setImageBitmap(response.getBitmap());
Bitmap icon = mIconGenerator.makeIcon();
Bitmap bhalfsize = Bitmap.createScaledBitmap(icon, 150,
150, false);
markerOptions.icon(BitmapDescriptorFactory
.fromBitmap(bhalfsize));
}
}
});
}
Проблема в том, что когда изображение загружается, карта (и, следовательно, маркер) не обновляется, поэтому в большинстве случаев (но не всегда) я все еще вижу красные маркеры по умолчанию.
Я пытался сделать mImageIcon.invalidate(); mImageIcon.requestLayout();
, но пока безрезультатно.
Есть ли способ добиться этого? Заранее большое спасибо.