当前位置:   article > 正文

ImageLoader的简单分析(终结篇)_imageloaderconfiguration作用

imageloaderconfiguration作用

不知不觉的关于Imageloader的简单分析博客系列居然已经完成了6篇,今天将这一篇博客就把前几篇博客讲到的东东做一个系统的总结,然后就算完成了对ImgeLoader的分析。
参考资料如下(当然是博主之前的几篇文章了):
ImageLoader的简单分析
ImageLoader的简单分析(二)
ImageLoader的简单分析(三)
ImageLoader的简单分析(四)
ImageLoader的简单分析(五)
ImageLoader的简单分析(六)
经过以上几篇博文对ImageLoader的讲解,可以得到总结出如下的几点:
1)ImageLoaderConfiguration:它的作用是提供ImageLoader的配置信息,比如线程池、线程优先级、Memory Cache 、Disk Cache、载器、默认的DisplayImageOptions等等,客户端配置好这些信息之后就可以通过ImageLoader的init(ImageLoaderConfiguration configuration)方法交给ImageLoader来使用了!
2)DisplayImageOptions :这个组件是ImageLoader用来显示图片的配置项,它的主要功能是客户端可以让ImageView在图片资源下载前、下载中、下载取消、下载失败的时候显示一个默认图片;还可以在比较细的粒度上配置某个图片是否需要在磁盘缓存,是否需要在内存缓存;还可以在图片真正显示在ImageView之前通过BitmapProcessor对ImageLoader生成的bitmap进行处理。在使用它的过程中可以在ImageLoaderConfiguration中设置默认的配置,供app所有页面的ImageView统一使用,这个默认设置在TV端app的开发中经常会用到。当然也可以通过displayImage来传入一个有别于默认options的options。
3)ImageLoader给客户端提供三种方法来使用:loadImage、loadImageSync、displayImage;其中前两个方法最终都是调用displayImage方法来完成具体的工作,在使用这三个方法的过程中,除了配置options外,客户端还可以给这三个方法传入ImageLoaderListener这个接口的实现类来监听一个图片资源下载前、下载中、下载失败等状态并做相应的处理。
4)ImageLoaderEngine:这个组件是ImageLoader完成具体任务最核心组件。作为ImageLoader的工作引擎,它主要的功能就是对任务进行分发,将任务分发到具体的线程池中去进行执行。它主要负责分发两个任务:ProcessAndDisplayImageTask和LoadAndDisplayImageTask。其中前一个任务是展示memory cache的任务,后一个是加载Disk Cache或者服务端图片的任务。他们工作的期间,客户端还可以通过在Options中配置BitmapProcessor来对生成的ImageLoader进行处理。
5)最终将生成的bitmap交给DisplayBitmapTask然后在UI线程中进行图片的展示。
以上就是根据前几篇博客总结出来的ImageLoader的比较核心的部分,不过据说:
这里写图片描述

还是通过一个图来对上面的讲解做一个总结吧:
这里写图片描述
通过上面的图片也可以发现ImagLoader提供了二级缓存机制:即memory cache 和disk cache

注:上图中有的箭头使用虚线箭头的地方表明:在客户端使用Imagelaoder的时候,这些功能或者对象可以根据具体的业务选择性使用(也可以不使用)。
到此就完全结束了对ImageLoader的 讲解,如有不对的地方,欢迎批评指正。
其实说了这么多,我也有一个比较大的疑问,也不知道是否是ImageLoader的bug,如果有大神读这篇博文的话,还希望移步到博主的这篇帖子进行回答,不胜感激。
到此,对ImageLoader的讲解已经完成了,感觉收获良多,在读其源码的过程中有的体会由于语言能力表达有限,是办法写出来的,颇为遗憾。如有不当的地方,还请批评指正,共同学习和提高。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/105827
推荐阅读
相关标签
  

闽ICP备14008679号