前言:看过很多精彩的文章,作者写的非常好,但总觉得文字描述没有图片或图表说明来得直观,因为图片可以化抽象为具体。语言是有区域性的,而图片则是全世界通用的,即使语言不通,却能通过图片了解一切。因此想做一个系列的简博客,内容就是一张图附带一些必要的说明,这样就能迅速抓住重点,而不需要做太多的阅读,便能了解框架性的东西。文章所涉及到的图片有的可能来自官方网站,有的来自名家博客,或者是自己绘制的,都会一一说明。
切入正题,先来第一发,上图:
上图来自:https://github.com/nostra13/Android-Universal-Image-Loader
这就是著名的开源库Android-Universal-Image-Loader的图片处理流程图。
简要说明:
1.图片缓存分为内存缓存和磁盘缓存两部分。
2.显示图片时,先从内存缓存读起,如果在内存缓存找到了,则直接显示图片。
3.如果内存缓存没有,则在磁盘缓存查找,如果找到,则将其编码为Bitmap,然后对图片进行预处理,将其缓存到内存,最后显示图片。
4.如果内存缓存和磁盘缓存都没有找到图片,则去下载图片,下载完之后缓存到磁盘,然后将其编码为Bitmap,对图片进行预处理,再将其缓存到内存,最后显示图片。
Android图片缓存框架有很多,原理都大同小异,基本都是上述逻辑,大家可以举一反三,或者按上述流程写自己的图片缓存框架。
时间: 2024-10-18 18:54:52