在我的职能中:
public void getPointMarkerFromUrl(final String url, final OnBitmapDescriptorRetrievedListener listener) {
final int maxSize = context.getResources().getDimensionPixelSize(R.dimen.icon_max_size);
Target t = new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
if (bitmap != null)
listener.bitmapRetrieved(getBitmapDescriptorInCache(url, bitmap));
else
loadDefaultMarker(listener);
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
loadDefaultMarker(listener);
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
}
};
Picasso.with(context)
.load(url)
.resize(maxSize, maxSize)
.into(t);
}
在第一次加载图片时,从不调用 onBitmapLoaded()。我读过一些像 https://github.com/square/picasso/issues/39这样的主题,它建议使用提取(Target t)方法(这似乎是一个弱引用的问题...) ,但是这个函数在毕加索的上一个版本(2.3.2)中不可用。我只有一个 get ()方法,但不能同时使用 into (mytarget)
你能给我解释一下如何用一个定制的 Target 来使用 catch ()吗? 谢谢。
医生: http://square.github.io/picasso/javadoc/com/squareup/picasso/RequestCreator.html#fetch--