我首次在线使用picasso
从URL加载图片,然后从缓存中使用。来自网络的任何网址都会在imageview
上线或离线加载。但我的服务器图像URL是在线加载图像而非离线。我使用下面的图片加载代码。
Picasso.with(mContext)
.load(urlProfile)
.networkPolicy(NetworkPolicy.OFFLINE)
.placeholder(R.drawable.ic_place_holder)
.into(imageView, new Callback() {
@Override
public void onSuccess() {
}
@Override
public void onError() {
Picasso.with(mContext)
.load(urlProfile)
.placeholder(R.drawable.ic_place_holder)
.into(imageView);
}
});
在线或离线加载网址: URL
我的服务器网址仅在线加载图片: URL
我在缓存目录中显示,发现我的服务器URL的图像没有被缓存。任何人都有这个想法。
答案 0 :(得分:3)
嗨,下面是我的解决方案,它的工作正常。
Picasso.with(mContext)
.load(Uri.parse(urlProfile))
.networkPolicy(NetworkPolicy.OFFLINE)
.into(iv_view, new Callback() {
@Override
public void onSuccess() {
// if you are showing progress then handle it on here
}
@Override
public void onError() {
// Try again online if cache failed and download using internet
new Picasso.Builder(mContext)
.downloader(new OkHttpDownloader(mContext, Integer.MAX_VALUE))
.build()
.load(Uri.parse(urlProfile))
.placeholder(R.mipmap.ic_launcher)
.into(iv_view);
}
});
希望这可以帮助你..
顺便说一下这个很老,但你可以使用Glide来获得更好的性能。