【问题标题】:How to make Picasso load images faster?如何让毕加索加载图片更快?
【发布时间】:2018-09-07 17:50:38
【问题描述】:

我使用 Picasso(Android 图像下载库)。 Picasso website

我这样为我的图像充电:

Picasso.get().load("http://i.imgur.com/myImage.png").into(imageView);

但是,如果myImage.png 太大,下载会变慢。 (当然是网络连接不好)

如何让 Picasso 加载图片更快?

毕加索能把画质调低吗?或者我可以在使用前几秒钟“提前”充电吗?

请注意,我无法触摸文件myImage.png

----------

编辑

知道如何“提前”为图像充电吗?我应该使用不可见视图并将图像加载到其中,然后在我的视图中使用相同的图像吗?如何将图片添加到现金中(始终由毕加索提供)?

【问题讨论】:

  • 如果图片从源头太大,您仍然需要下载并在应用程序中进行处理。如果互联网很慢,没有什么神奇的方法可以加快大文件的下载速度。

标签: android picasso android-bitmap


【解决方案1】:

Picasso优化图片自动加载较小版本的图片到ImageView中,但是如果源图片“大”,加载会变慢所以我建议你优化源图像。

查看这篇文章:

Image Optimization

Automating Image Optimization

【讨论】:

    【解决方案2】:

    不,Picasso 会将该图像的较小版本加载到视图中以使用更少的内存,但是它必须事先下载完整的源图像。

    考虑上传较小的图片以缩短下载时间,您可以使用多个版本的图片:

    image_thumbnail.png
    image_small.png
    image_medium.png
    image_orginal.png
    

    先下载缩略图,再下载小图,大图看大图。

    是的,可以“提前”下载它们,但不建议在手机上浪费宝贵的电池和带宽。

    【讨论】:

    • 知道如何“提前”收费吗?我应该使用不可见的视图还是什么?
    • @abinax 是的,将它们加载到 Target 中,无需隐藏视图
    • 请问什么是目标?例如?
    • @abinax Target is a Picasso Interface,算了,你可以用fetch()预加载图片See this
    【解决方案3】:

    毕加索无法控制满足网络请求的服务器或互联网连接本身。使用 Thumbor 之类的服务可能会有所帮助:https://github.com/thumbor/thumbor

    【讨论】:

    • 我可以结合毕加索和拇指吗?
    【解决方案4】:

    您可以尝试将其添加到您的 android 清单中

    <application android:hardwareAccelerated="true" ...>
    

    我用它来更快地加载视频,它适用于我;)也许它也适用于你

    【讨论】:

    • android:hardwareAccelerated 默认为 "true" 所以我想这不是这个问题的解决方案。
    猜你喜欢
    • 2015-11-16
    • 2020-07-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多