【问题标题】:Recyclerview with Picasso loading already loaded imagesRecyclerview 与 Picasso 加载已加载的图像
【发布时间】:2020-06-19 18:46:49
【问题描述】:

在我的android应用程序中,有一个recyclerview,每个项目都有一个图像,我已经用毕加索加载了它们,问题是在向下滚动之后,如果你向上滚动一些图像再次加载,这很烦人。我可以做些什么来缓存所有图像,这样就不会再发生重新加载? 我知道这不是第一次被问到这个问题,但是经过大量搜索后,我找不到全面的解决方案。 这是我使用毕加索的方法:

Picasso.with(context).load(link).into(myHolder.img);

【问题讨论】:

  • @LucaNicoletti 是的,这是一个类似的问题,但我在回收站视图的适配器中获取图像,并且当第二次加载图像时再次加载图像。此链接中的答案无济于事。
  • 你的意思是它总是从网络加载吗?不是来自磁盘/内存?
  • @hakim 并非总是如此,大多数时候。
  • 嗯,很奇怪,抱歉只是为了确保您启用了调试指示器setIndicatorsEnabled(true) 吗?顺便说一句,为了使图像加载看起来快速/即时,您还可以使用 noFade() 禁用默认淡入淡出动画

标签: android


【解决方案1】:

Piccosa 在内部加载缓存的图像。您不需要明确指定任何内容。您可以阅读其文档以了解缓存策略。以及不同类型的缓存,包括 Picasso 缓存的默认行为。

https://futurestud.io/tutorials/picasso-influencing-image-caching

【讨论】:

    【解决方案2】:
    Picasso.with(context).load(link).fit().into(Target) 
    

    会解决你的问题

    【讨论】:

    • 这其实是正确的答案。它不断加载的原因是图像的大小。通过使用fit()resize(w, h) 将解决这个问题 - 更小的图像大小 = 更快的缓存。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-11
    • 2019-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-20
    相关资源
    最近更新 更多