【发布时间】:2014-06-12 09:22:27
【问题描述】:
在我的功能中:
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 的主题,它建议使用 fetch(Target t) 方法(这似乎是弱引用的问题......),但这个功能在 picasso 的最新版本(2.3.2)中不可用。 2)。我只有一个 fetch() 方法,但我不能同时使用 into(mytarget)
您能解释一下如何将 fetch() 与自定义目标一起使用吗?谢谢。
文档:http://square.github.io/picasso/javadoc/com/squareup/picasso/RequestCreator.html#fetch--
【问题讨论】:
-
确保使用 okhttp 2.0.0,我在使用 Picasso 2.3.2 和 Okhttp 1.6.0 时遇到同样的问题
-
github.com/square/okhttp afaik,如果您使用 Picasso 2.3.2 来包含 okhttp(和 okio)库,这是强制性的。你用的是eclipse还是android studio?
-
我正在使用 IntelliJ。我已经看到了我的 gradle 依赖项,我没有看到 okhttp...Picasso 似乎没有它也可以工作
-
@psv 您是如何使用标记实现以下解决方案的?
标签: picasso