【问题标题】:Picasso not loading image for some url毕加索没有为某些网址加载图片
【发布时间】:2015-02-28 14:43:23
【问题描述】:

我想从网上下载一张图片。 http://luxproperty.kaytami.com/platform/media/image/jpeg/2014/12/24 Repulse Bay Road.jpg

我已经用 %20 替换了空格,所以它变成了 http://luxproperty.kaytami.com/platform/media/image/jpeg/2014/12/24%20Repulse%20Bay%20Road.jpg

image 不大,所以我认为 Picasso 应该能够加载它。

为了适合我的 imageview,我有 fit() 图像,代码如下:

Picasso.with(mContext).load(UrlEncoder.encode(district.getImage_urls().get(0))).fit().centerCrop().into(holder.image);

但是,图像没有出现。

有 4 个项目的列表,每个项目都包含我从网上加载的图像。其中三个已正确加载,剩下的一个 (http://luxproperty.kaytami.com/platform/media/image/jpeg/2014/12/24%20Repulse%20Bay%20Road.jpg) 只是没有显示。

有什么想法吗?

我用的是毕加索2.4.0,okhttp-2.1.0看看这个

【问题讨论】:

  • 尝试移除 fit 看看是否有效
  • 如果我删除 fit() 就可以了。但是我想让加载的图像适合我的 imageView,那我该怎么办?
  • 尝试使用毕加索的中心裁剪或调整大小功能
  • 因为事先不知道图片的大小比例,所以无法使用resize。如果我不使用fit()或resize(),那么毕加索会在将图像放入imageview之前下载图像的完整尺寸吗?如果是这样,那么加载所有图像将非常耗时。有什么想法吗?
  • 在使用毕加索将其设置为图像视图之前使用一种方法压缩图像(保持纵横比)或调整图像大小。然后使用毕加索目标接口将转换后的drawable设置为图像视图。

标签: android image picasso


【解决方案1】:

这是一个 bug,据报道将在 lib 的下一个版本中修复。

你可以克隆 lib 的 repo 并编译你自己的 jar 或等待。

我建议你看看 Glide。从 Picasso 迁移非常简单,它具有更好的性能,并且可以在列表上平滑滚动。

【讨论】:

    【解决方案2】:

    当我尝试使用毕加索加载图像时遇到了同样的问题,但我使用了这个Library

    这是我迄今为止最简单的事情。

    编译:

    compile 'com.koushikdutta.ion:ion:2.+'
    

    然后:

    //for activity
    ImageView myImage = (ImageView)findViewById(R.id.my_image);
    
    //for fragment
    ImageView myImage = (ImageView)rootView.findViewById(R.id.my_image);
    
    
    Ion.with(myImage)
    .placeholder(R.drawable.placeholder_image)
    .error(R.drawable.error_image)
    .load("http://example.com/image.png");
    

    希望对你有帮助!!!

    【讨论】:

    • 谢谢,但如果我能在这一刻留在毕加索身边就更好了。
    猜你喜欢
    • 1970-01-01
    • 2018-05-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-12
    • 1970-01-01
    • 2017-07-14
    • 2020-07-21
    相关资源
    最近更新 更多