项目中经常会用到图片加载框架,关于框架使用,在开发中会遇到以下几种情况:
1.老图片框架过时了,不适应项目发展需要了,有新的更好用的性能更高的框架可以替代。
2.项目经历不同的人,不同的人喜爱使用不同的图片框架,然后把框架加到项目中。
3.没有对框架进行封装,直接用框架里面的API运用自己的app中。
4.有一个简单的utils工具类,但是封装的不完整,后续可维护性很差。
如果你的项目出现了以上几个问题的,其实你有必要看看这篇博文了。这篇博文,老司机带你封装一个图片隔离型框架,只需要一行代码切换图片框架库,并且不会对你原始代码里面的调用产生任何影响。是不是很6?(此处应该点赞)
下面,我们就用 Picasso 更换到 Glide 这个例子来说明一下如何做到不修改Activity 或者 Fragment 或者Presenter 的代码情况下,更快地更换业务逻辑实现的代码,如何做到一行代码切换图片库?
先来看看目录:
- 一、把图片加载框架的共性方法抽取到接口中
- 二、看看LoaderOptions 类,这个类是对图片参数的一个封装类,采用的是建造者模式写的。
- 三、我们来看看使用Picasso如何实现加载图片操作
- 四、上一步的那个PicassoLoaderProcessor 用到了一个类 LruCacheUtils ,这个类主要是做缓存处理的封装
- 五、关键类:真正的代理类 ImageLoaderHelper 出场了,图片框架切换的操作都通过它来控制的
- 六、Application中的初始化操作
- 七、我在Activity里面的使用方式,只需要关心ImageLoaderHelper这个类里面的具体方法就好了,而且不管图片框架怎么变动,Activity里面的调用不会有变化的,达到了真正意义上的隔离。