Picasso Bild in Ziel laden
Ich verwende Picasso, um verschiedene Bilder herunterzuladen. Normalerweise zeige ich diese nur in einem @ aImageView
aber in dieser Situation möchte ich einen starken Verweis auf sie haben, damit ich sie an verschiedenen Stellen verwenden kann, ohne auf den Cache zurückgreifen oder sie erneut herunterladen zu müssen. Das versuche ich folgendermaßen: (Beachten Sie, dass diese Klasse mehr enthält - ich habe sie nur auf die für diese Frage relevanten Teile eingegrenzt.)
public class MapLayer {
private Context mContext;
private String mType;
private Drawable mIcon = null;
public MapLayer (Context context, String type) {
mContext = context;
mType = type;
downloadIcon();
}
public Drawable getIcon() {return mIcon;}
private void downloadIcon() {
String url = mContext.getString(R.string.maps_icon_url).replace("${type}", mType));
Target target = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
Log.d(TAG, "on bitmap loaded");
mIcon = new BitmapDrawable(mContext.getResources(), bitmap);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
Log.d(TAG, "on bitmap failed");
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
Log.d(TAG, "on prepare load");
mIcon = placeHolderDrawable;
}
};
ImageDownloader.getSharedInstance().load(url).into(target);
}
}
n jedem Fall erhalte ich die Ausgabe:
on prepare load
aber nichts anderes. Mein Icon ist immer null. Ich kenne das aus anderen Klassen, in denen ich @ anrufgetIcon()
.
Was fehle ich hier? Vielen Dank für jede Hilfe.