您的位置:首页 > 其它

简述ImageLoader显示图片的流程

2017-06-02 17:29 85 查看

分析 displayImage()流程

1.传入的参数有url,options,targetSize,listeneer还有ImageView;

2.健壮性判断。判断:

ImageView是否为空;

options是否为空,如果为空,则产生默认配置。

判断Url是否为空

3.如果url为空,则通过listener回调相应的方法()。并根据options来这是相应的Image图片。

4.如果url不为空,则:

制定TagetSize,根据配置信息;

根据TagetSize和Url生成一个key,去获取缓存中的bitmap对象;

5.如果bitmap对象不对空,且没有被复用,则是根据options的参数做善后处理;

如果options.shouldPostProcess()为false,则将缓存中bitmap拿到,并且通过options的displayer进行展示,listener进行回调。

如果需要做处理,则将相应的数据封装成ImageLoadingInfo对象,去处理加载展示任务。并且根据options分为同步和异步;处理是调用了options里面封装的processor进行处理,处理之后再将数据显示。

6.如果bitmap为空,

根据options的配置,做一个Loading状态的显示

根据每一个Url都有一个同步锁,在同步锁内,再次去检查内存中是否有缓存;如果没有去磁盘中做检查,如果磁盘中有,将其进行编码成bitmap

如果bitmap为空,则进行网络请求,网络请求是通过config中定义的下载器,将图片缓存到磁盘中。进行磁盘中的拿到内存中,进行参数配置,成bitmap

显示bitmap。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息