1.内存缓存
2.外部文件缓存
3.从服务端下载图片 下载成功后调用1内存缓存的putBitmap()函数,缓存图片。 在外部文件缓存中也写入一份,调用2的putBitmap()函数. 4.预览图片的流程 1) 如果预览的图片在内存缓存区中,直接调用1的getBitmap()函数,获取bitmap数据(先在硬引用缓存区查找匹配,若硬引用区匹配失败,再去软引用区匹配) 2) 如果从内存缓存区读取失败,再从外部文件缓存中读取,调用2的getBitmap()函数 3) 如果从外部文件缓存中读取失败,则从服务端下载该图片,过程3. 5.生成key值
| 图片预取缓存策略是内存缓存(硬引用LruCache、软引用SoftReference<Bitmap>)、外部文件缓存(context.getCachedDir()),缓存中取不到的情况下再向服务端请求下载图片。同时缓存三张图片(当前预览的这张,前一张以及后一张)。