【问题标题】:RecyclerView stutters when scrolling only 14 images仅滚动 14 个图像时 RecyclerView 口吃
【发布时间】:2020-02-23 17:17:03
【问题描述】:

我一直在尝试创建一个充满卡片视图的回收站视图。目前,我正在使用来自this tutorial 的 Recycler View 并使用 14 个不同的图像加载它。专业品质的图像大小范围从 134K 到 242K。(从 8MB 到 18MB)

我知道图像可能太大,但我觉得必须有一些方法可以在滚动时获得更好的性能。有人能指出我正确的方向吗?

编辑:图像将存储在设备上。可能永远不会超过 20 个。

【问题讨论】:

    标签: android


    【解决方案1】:

    您可以使用Picasso libraryAndroid Universal Image Loader

    Picasso

    Android-Universal-Image-Loader

    您不需要任何AsyncTask.Theese 2 库在后台处理图像操作,因此您可以保持平滑滚动。我现在在我的项目中使用Picasso。您可以添加错误 drawable ,临时占位符默认 drawable ,以及它如此简单的自动缓存。 只需在onBindViewHolder 中使用其中一个即可将任何图像绑定到imageView

    【讨论】:

    • 我有毕加索,现在。如果我使用这张图片,i.imgur.com/DvpvklR.png,滚动速度真的很快。如果我使用 14 个不同的图像(本地存储),当从底部返回视图顶部时,它们似乎没有被缓存。当我向上滚动到顶部时,顶部的图像视图再次空白并逐渐消失。如何保留图像?
    • Yasin - 我现在正在从网络上提取一些图像来替代 14 个。它们按预期进行缓存,因此它们可以快速加载和滚动!我仍然想知道如何缓存本地图像。
    • 所以你能在这里发布你的最终代码吗?我有 15 种不同的可绘制对象,我也在使用。它只会加载 1 次。如果您发布您的代码,我会将其与我的代码进行比较并帮助您。
    【解决方案2】:

    在单独的线程(或 AsyncTask)中加载图像。

    【讨论】:

    • 如果图像是本地的,我会将 AsycTask 放在哪里?
    猜你喜欢
    • 2023-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    • 2011-09-27
    • 2021-11-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多