android常用图片加载模块,源代码分析篇:Xutils图片加载模块

图片的动态加载,在android的很多应用开发中都会用上,那如何才可以设计出用户体验最好的图片加载模块呢,今天就带大家了解开源Xutils快速开发框架的图片加载模块吧,当然在后面也会分析当前最火的图片加载源码:universal-image-loader。

流程图:

a4c26d1e5885305701be709a3d33442f.png

使用类流程:

a4c26d1e5885305701be709a3d33442f.png

代码流程图:

a4c26d1e5885305701be709a3d33442f.png

a4c26d1e5885305701be709a3d33442f.png

BitmapUtils的优点:

1.

加载bitmap的时候无需考虑bitmap加载过程中出现的oom和android容器快速滑动时候出现的图片错位等现象。

2. 支持加载网络图片和本地图片;

3.内存管理使用lru算法,更好的管理bitmap内存;

4.可配置线程加载线程数量,缓存大小,缓存路径,加载显示动画等.

仔细阅读网址:http://blog.csdn.net/ljx19900116/article/details/43482073。里面大概的分析了一下所用到的类的大概功能。

在开始了解开源代码的时候,我们最好先对图片的动态加载的过程有一个清晰的思路,这样我们才可以更快更深入的了解别人代码。

图片动态加载的流程:

当我们开始动态加载app中的各种图片资源时,首先,我们会根据自己的需要,配置图片加载的各种信息(BitmapGlobalconfig,BitmapDisplayConfig),我们接着从缓存中读取是否有图片信息,缓存分为内存缓存(lrumemorycache)和硬盘缓存(lrudiskcache),当然我们需要了解把图片信息放在内部存储还是外部存储时,他们存储的算法是什么(lru),文件命名有什么区别(MD5和hashcode),用到了什么类(dislrucache,hashmap和lrucache),为什么要用这种方法。接着,如果在手机的缓存中没有图片的信息,我们就在任务队列中添加任务,等待线程池执行图片请求,最后当图片从网络中下载后,在放入缓存中。(附加:在查看开源代码时,多点了解别人代码的代码层次切分,用到了那些设计模式,接口的多态如何处理的,什么时候使用枚举列等等)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值