Picasso Загрузить изображение в цель
Я использую Пикассо для загрузки различных изображений. Обычно я просто отображаю их в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()
.
Что мне здесь не хватает? Спасибо за любую помощь.