我正在使用畢加索下載各種圖像。通常,我只是在ImageView
中顯示這些內容,但在這種情況下,我希望對它們進行強有力的參考,以便我可以在不同的地方使用它們,而無需返回緩存或重新下載它們。這裏是我在嘗試做(注意,有更多這一類 - 我只是把範圍縮小到有關這個問題的部分):畢加索將圖像加載到目標中
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);
}
}
在任何情況下,我得到輸出:
on prepare load
,但沒有別的。我的圖標始終爲空。我從其他職業我知道這個,我叫getIcon()
。
我在這裏錯過了什麼?謝謝你的幫助。
這就是我需要做的。非常感謝! – Alex