我正在使用毕加索图书馆进行图像下载并将其显示在imageView中。此库还将图像存储在缓存和内存中。当我的互联网打开时,我可以在imageView上查看图像。所以我认为,它也应该存储在缓存或文件内存中。现在我的互联网已关闭,但它不会显示图像。请看一看。
Picasso.with(context)
.load(url) .placeholder(R.drawable.defaultimg)
.networkPolicy(NetworkPolicy.OFFLINE)
.into(holder.imageview2, new ImageLoadedCallback(holder.loadingBar) {
@Override
public void onSuccess() {
if (holder.loadingBar != null) {
holder.loadingBar.setVisibility(View.GONE);
}
}
@Override
public void onError(){
holder.loadingBar.setVisibility(View.VISIBLE);
Picasso.with(context)
.load(url) .placeholder(R.drawable.defaultimg)
.into(holder.imageview2, new ImageLoadedCallback(holder.loadingBar) {
@Override
public void onSuccess() {
if (holder.loadingBar != null) {
holder.loadingBar.setVisibility(View.GONE);
}
}
@Override
public void onError() {
if (holder.loadingBar != null) {
holder.loadingBar.setVisibility(View.GONE);
}
}
});
}
});
最后我解决了这个问题。谢谢 @dev.bmax
图片网址不正确。毕加索有bug。如果我们有像这样的网址
https://i.ytimg.com/vi/DMVEcfQmPOs/maxresdefault.jpg?500|700
毕加索能够在互联网打开时显示图像但是如果我们关闭互联网,它不会解码 URL。并且不显示图像。
我们必须删除 ?500|700,然后我也能够在 OFFLine 模式下查看图像。 url.substring(0,url.indexOf("?"((
https://i.ytimg.com/vi/DMVEcfQmPOs/maxresdefault.jpg
谢谢!