項目中經(jīng)常會用到圖片加載框架,關于框架使用,在開發(fā)中會遇到以下幾種情況:
1.老圖片框架過時了,不適應項目發(fā)展需要了,有新的更好用的性能更高的框架可以替代。
2.項目經(jīng)歷不同的人,不同的人喜愛使用不同的圖片框架,然后把框架加到項目中。
3.沒有對框架進行封裝,直接用框架里面的API運用自己的app中。
4.有一個簡單的utils工具類,但是封裝的不完整,后續(xù)可維護性很差。

如果你的項目出現(xiàn)了以上幾個問題的,其實你有必要看看這篇博文了。這篇博文,老司機帶你封裝一個圖片隔離型框架,只需要一行代碼切換圖片框架庫,并且不會對你原始代碼里面的調(diào)用產(chǎn)生任何影響。是不是很6?(此處應該點贊)
下面,我們就用 Picasso 更換到 Glide 這個例子來說明一下如何做到不修改Activity 或者 Fragment 或者Presenter 的代碼情況下,更快地更換業(yè)務邏輯實現(xiàn)的代碼,如何做到一行代碼切換圖片庫?
先來看看目錄:
- 一、把圖片加載框架的共性方法抽取到接口中
- 二、看看LoaderOptions 類,這個類是對圖片參數(shù)的一個封裝類,采用的是建造者模式寫的。
- 三、我們來看看使用Picasso如何實現(xiàn)加載圖片操作
- 四、上一步的那個PicassoLoaderProcessor 用到了一個類 LruCacheUtils ,這個類主要是做緩存處理的封裝
- 五、關鍵類:真正的代理類 ImageLoaderHelper 出場了,圖片框架切換的操作都通過它來控制的
- 六、Application中的初始化操作
- 七、我在Activity里面的使用方式,只需要關心ImageLoaderHelper這個類里面的具體方法就好了,而且不管圖片框架怎么變動,Activity里面的調(diào)用不會有變化的,達到了真正意義上的隔離。