使用Picasso Library从高速缓存存储器中不显示图像

时间:2017-03-20 09:40:18

标签: android picasso

我使用 Picasso 库进行图片下载并在imageView中显示。该库还将图像存储在缓存和内存中。当我的互联网打开时,我能够在imageView上查看图像。所以我认为,它也应该存储在缓存或文件内存中。现在我的互联网是turnOFF,但它不会显示给图像。请好好看看。

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);
                }
            }
        });
    }
});

1 个答案:

答案 0 :(得分:0)

最后我解决了这个问题。谢谢@ dev.bmax

图片网址不正确。毕加索有错误。如果我们有像

那样的网址

https://i.ytimg.com/vi/DMVEcfQmPOs/maxresdefault.jpg?500|700

Picasso能够在互联网开启时显示图像 但如果我们关闭到互联网,它不会解码网址。而且也不显示图像。

我们必须删除?500 | 700 ,然后我才能在OFFLine模式下查看图像。   //url.substring(0,url.indexOf("&#34))

https://i.ytimg.com/vi/DMVEcfQmPOs/maxresdefault.jpg

谢谢!