【问题标题】:Recyclerview lagging in scrollingRecyclerview滚动滞后
【发布时间】:2023-04-06 14:04:01
【问题描述】:

我正在尝试制作一个音乐应用程序,只是为了练习 Kotlin,我制作了一个 Recyclerview 和从外部存储中获取数据的函数。

现在我的问题是,当我向上或向下滚动时,它会一直滞后,我认为原因是在 onBindViewHolder 函数中,我使用此代码从 Uri 创建了一个位图

  bitmap = MediaStore.Images.Media.getBitmap(contentResolver,album_uri)
                       

然后我设置位图

holder.song_image.setImageBitmap(songList[position].image)

我想如果我在创建 Recyclerview 之前一次性创建所有位图并将它们放入 Arraylist 将有助于停止滞后,但确实有另一个问题,我无法在主要处理它线程导致它冻结。

我不知道该使用什么,所以我搜索了该使用什么,并阅读了有关协程的信息,但我觉得它有点用于延迟的多线程/任务等等,但我只需要做一个简单的任务无需冻结 UI 线程。

【问题讨论】:

  • 您是否考虑过使用图像加载库,例如 Glide、Picasso 或 Coil?它们可以为您处理在后台线程上加载图像,并且通常很容易集成到应用程序中。
  • 使用 Glide 加载图像而不是位图:github.com/bumptech/glide
  • 非常感谢,伙计们。它与 Glide 完美配合,是的。我不认为我需要一个图书馆,但它为我节省了很多时间。请有人把它作为答案。

标签: android android-studio kotlin android-recyclerview android-asynctask


【解决方案1】:

尝试使用GlidePicassoCoil 等图像加载库。他们可以在后台线程上加载图像。

【讨论】:

    猜你喜欢
    • 2018-01-30
    • 1970-01-01
    • 2014-10-08
    • 2017-06-14
    • 2021-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多