前言
记录APP从无到有下载网络图片并做展示的方法:创建一个图片加载器负责下载和显示。
一、图片加载器
图片加载器的功能包括图片下载和图片的缓存。缓存类的设计如下,使用LruCache类即可,缓存的最大值设定为为运行时内存的四分之一。关于LruCache的使用和原理可自行百度。
class ImageCache {
lateinit var imageCache: LruCache<String, Bitmap>
init {
initCache()
}
private fun initCache() {
val maxMemory = Runtime.getRuntime().maxMemory() / 1024
val cacheSize = maxMemory / 4
imageCache = object : LruCache<String, Bitmap>(cacheSize.toInt()) {
override fun sizeOf(key: String?, value: Bitmap?): Int {
return (value?.rowBytes?.times(value.height) ?: 0) / 1024
}
}