【问题标题】:Picasso is not loading image if I use resize() function如果我使用 resize() 函数,毕加索不会加载图像
【发布时间】:2016-10-27 21:40:44
【问题描述】:

当我使用带有调整大小选项的 picasso 加载文件时,它不会显示。我正在使用Picasso.with(mContext).load(file).resize(160,213).into(holder.skinImage);

该文件的尺寸为 4608 X 3456。当我使用 Picasso 而不调整大小时它会加载,但加载时间太长。 Picasso.with(mContext).load(file).into(holder.skinImage);

编辑:我刚刚尝试加载大小为 1080 X 1920 的图像,效果很好。

【问题讨论】:

  • LogCat有错误吗?
  • @RaymondLukanta 没有错误
  • 在下载4608 X 3456 图像后调整大小不会帮助提高下载速度
  • 你用的是什么版本的毕加索?
  • @JohnWowUs 完成。甚至这个版本也不能处理高分辨率图像

标签: android picasso


【解决方案1】:

尝试像这样添加 scaletype

Picasso.with(mContext).load(file).resize(160,213).centerCrop().into(holder.skinImage);

【讨论】:

    【解决方案2】:

    奇怪的是,您说不调整大小下载需要更多时间 - 它应该花费完全相同的时间。

    使用 Picasso .resize() 调整大小是不好的,如果您打算在其他任何地方获取该图像而不调整大小,因为它将以一些 -resize-160,213 前缀缓存,当您尝试仅通过 URL 获取它时,您会得到缓存未命中。那么为什么不通过 XML 布局参数调整大小呢?

    您也可以enable Http logging 了解幕后情况。至少你会看到,如果它是not downloadednot placed(并查看 picasso 实例中的缓存 - 是否存在图片?)。如果您找到第二个选项 - 尝试更改布局。

    【讨论】:

    • 我正在从本地文件中加载它。我只是尝试在 Target 变量中加载相同的图像,并使用 errorDrawable null 触发 onBitmapFailed()。
    • 你确定你除了添加 resize() 什么都不做吗?
    • 是的。实际上,当我加载大小为 1080 X 1920 的图像时它工作正常
    • 你使用 OpenGL 吗?它具有最大图像大小限制。也许您面临一些 android 内存限制。尝试将 largeHeap 设置为清单。或者尝试将其直接从资源加载到 ImageView:src 中(只是为了确保它不是某个大小/内存限制)。也许这也会有所帮助developer.android.com/training/displaying-bitmaps/…
    • 您可以尝试使用.fit()而不是.resize()吗?
    猜你喜欢
    • 1970-01-01
    • 2014-08-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多