Android,在列表适配器中高效地加载图像
Android, loading images efficiently in a list adapter
我正在编写一个 android 应用程序。我有一个 ArrayAdapter,我用它来显示项目列表,其中每个项目的一部分是图像。我在 adapers getView() 方法中异步下载图像,我正在使用缓存来保持它尽可能高效并停止过多的重新下载。我面临的问题是 android 可以根据需要多次调用每个项目的 getView() 方法。它通常被称为比图像实际下载速度更快,因此同一张图像甚至在进入缓存之前可以排队等待多次下载。是否有关于如何防止图像重复排队等待下载的最佳实践?这似乎是对移动数据的巨大浪费。
如果你想使用第三方图片下载库那么你可以使用Picasso
它实际上非常简洁且易于使用。它为您的应用程序缓存。
可以参考this教程
快乐学习:)
Google 推荐的在列表或回收视图中下载和显示图像的公认最佳做法是使用 Glide 库
https://github.com/bumptech/glide
api 看起来像这样
Glide.with(context)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.crossFade()
.into(myImageView);
我正在编写一个 android 应用程序。我有一个 ArrayAdapter,我用它来显示项目列表,其中每个项目的一部分是图像。我在 adapers getView() 方法中异步下载图像,我正在使用缓存来保持它尽可能高效并停止过多的重新下载。我面临的问题是 android 可以根据需要多次调用每个项目的 getView() 方法。它通常被称为比图像实际下载速度更快,因此同一张图像甚至在进入缓存之前可以排队等待多次下载。是否有关于如何防止图像重复排队等待下载的最佳实践?这似乎是对移动数据的巨大浪费。
如果你想使用第三方图片下载库那么你可以使用Picasso
它实际上非常简洁且易于使用。它为您的应用程序缓存。
可以参考this教程
快乐学习:)
Google 推荐的在列表或回收视图中下载和显示图像的公认最佳做法是使用 Glide 库
https://github.com/bumptech/glide
api 看起来像这样
Glide.with(context)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.crossFade()
.into(myImageView);