图像未从使用毕加索图书馆的缓存内存中显示



我正在使用毕加索图书馆进行图像下载并将其显示在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

谢谢!

最新更新