【发布时间】:2017-03-20 20:17:00
【问题描述】:
我正在使用 Picasso 库来下载图片并将其显示在 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);
}
}
});
}
});
【问题讨论】:
-
当您的网络关闭时,无论图片是否缓存,源都倾向于为库更正,所以它会抛出异常并且不显示缓存的图片.下载图像并在互联网关闭时提供本地路径,或者在没有互联网的情况下提供适当的占位符图像。
-
@MohammedAtif 我不相信是这样。 Jake addressed this issue in the Picasso issue tracker here.
-
@Mohammed Atif 我的应用程序使用毕加索缓存图像,即使在互联网关闭时也会显示它们。
-
离线时检查
url不为空/null