首页 > 解决方案 > Picasso 在 RecyclerView 中加载图像非常缓慢

问题描述

我在应用程序中实现聊天功能时遇到了毕加索的问题。我面临的问题是它加载图像的速度非常慢。从 BE 返回的图像最大可达 500kb。当线程中只有一张图像时,加载时间是可以接受的。当我们得到多个图像时,它就变成了一场噩梦。在重量约为 150kb 的 LTE 图像上,加载时间甚至为 8 秒。这是我使用毕加索的方法:

Picasso
      .get()
      .load(photoPath)
      .resize(imageSize, imageSize)
      .centerCrop()
      .into(image, object : Callback {
                        override fun onError(e: Exception?) {
                            progress.visibility = View.GONE
                        }

                        override fun onSuccess() {
                            progress.visibility = View.GONE
                        }
                    })

我在这里做错什么了吗?如何强制毕加索更快地加载图像?对我来说,毕加索似乎以某种延迟开始加载过程。也许重要的是我将元素加载到 RecyclerView 中,然后将其一直滚动到底部。

编辑:

对于案件中的信息,有人会遇到同样的问题。我已经尝试过Glide,幸运的是它对我来说效果更好。在我看来,它lag比毕加索要小。对我帮助很大的第二件事是在通知中实现了图像预览。这个实现在我在 UI 中使用它之前获取图像,所以现在所有的加载都非常快。

标签: androidandroid-recyclerviewkotlinpicasso

解决方案


推荐阅读