Glide系列(一)---緩存策略

最近在項目中她奥,用到了大量的圖片處理瓮增,各式各樣的,所以在項目完結(jié)之后哩俭,也對這一套圖片處理框架做個總結(jié)绷跑,與各位朋友分享一下。我在本次項目中選擇了Google的Glide作為圖片加載庫携茂。

一你踩、緩存基礎(chǔ)

Android App 中必須去做的是一個很好的實現(xiàn)圖片加載組件,盡可能少的去減少網(wǎng)絡(luò)請求,這樣也可以為用戶節(jié)省一些流量带膜,快速的加載圖片和數(shù)據(jù)也會增強用戶體驗吩谦。Glide 在這里并沒有什么不同。Glide 通過使用默認的內(nèi)存和磁環(huán)緩存去避免不必要的網(wǎng)絡(luò)請求膝藕。我們將在后面的博客中去詳細的查看實現(xiàn)細節(jié)式廷。如果你等不到那個時候,通過瀏覽官方文檔這個話題芭挽。目前最重要的是帶著所有的圖片請求放到內(nèi)存和磁盤中滑废。雖然緩存通常是很有用的,但在某些情況下袜爪,它可能不是像期待的行為那樣蠕趁。

二、使用緩存策略

如果你以前用過 Glide辛馆。你會發(fā)現(xiàn)不需要去做任何額外的事情來激活緩存俺陋。它直接就從盒子里取出來用了!然而昙篙,如果你知道一張圖片變化很快腊状,你可能想要避免某些緩存。
Glide 提供了方法去適配內(nèi)存和磁盤緩存行為苔可。讓我們先看看內(nèi)存緩存缴挖。
內(nèi)存緩存
讓我們想象一個非常簡單的請求,從網(wǎng)絡(luò)中加載圖片到 ImageView焚辅。

Glide .with( context )
 .load( eatFoodyImages[0] ) 
 .skipMemoryCache( true ) //跳過內(nèi)存緩存
 .into( imageViewInternet );

你已經(jīng)注意到映屋,我們調(diào)用了 .skipMemoryCache(true)去明確告訴 Glide 跳過內(nèi)存緩存。這意味著 Glide 將不會把這張圖片放到內(nèi)存緩存中去法焰。這里需要明白的是秧荆,這只是會影響內(nèi)存緩存倔毙!Glide 將會仍然利用磁盤緩存來避免重復的網(wǎng)絡(luò)請求埃仪。這也容易知道 Glide 將會默認將所有的圖片資源放到內(nèi)存緩存中去。因為陕赃,指明調(diào)用 .skipMemoryCache(false)是沒有必要的卵蛉。

提示:注意個事實,如果你初始URL 相同的請求 么库,但沒有調(diào)用 .skipMemoryCache(true)
傻丝,然后你后來又調(diào)用了這個方法,這個資源將會在內(nèi)存中獲取緩存诉儒。當你想要去調(diào)整緩存行為時葡缰,確保你是要調(diào)用所有相同資源的時候。

三、跳過磁盤緩存

正如你上面這部分所了解到的泛释,即使你關(guān)閉內(nèi)存緩存滤愕,請求圖片將會仍然被存儲在設(shè)備的磁盤緩存中。如果你有一張圖片具有相同的 URL怜校,但是變化很快间影,你可能想要連磁盤緩存也一起禁用。
你可以用 .diskCacheStrategy()方法為 Glide 改變磁盤緩存的行為茄茁。不同于 .skipMemoryCache()方法魂贬,它需要一個枚舉作為參數(shù)而不是一個布爾值。如果你想要為一個請求禁用磁盤緩存裙顽。使用枚舉 DiskCacheStrategy.NONE 作為參數(shù)付燥。

Glide .with( context ) 
.load( eatFoodyImages[0] ) 
.diskCacheStrategy( DiskCacheStrategy.NONE )
 .into( imageViewInternet );

圖片在這段代碼片段中將不會被保存在磁盤緩存中。然而愈犹,默認的它將仍然使用內(nèi)存緩存机蔗!為了把這里兩者都禁用掉,兩個方法一起調(diào)用:

Glide .with( context ) 
.load( eatFoodyImages[0] ) 
.skipMemoryCache( true ) .into( imageViewInternet );
.diskCacheStrategy( DiskCacheStrategy.NONE ) 

四甘萧、自定義磁盤緩存行為

正如我們之前提到的萝嘁,Glide 有多個選項去配置磁盤緩存行為。在我們向你展示這些選項之前扬卷,你必須了解到 Glide 的磁盤緩存是相當復雜的牙言。
Picasso 僅僅緩存了全尺寸的圖像。然而 Glide 緩存了原始圖像怪得,全分辨率圖像和另外小版本的圖像咱枉。比如,如果你請求的一個圖像是 1000x1000 像素的徒恋,但你的 ImageView 是 500x500 像素的蚕断,Glide 將會把這兩個尺寸都進行緩存。
現(xiàn)在你將會理解對于 .diskCacheStrategy()
方法來說不同的枚舉參數(shù)的意義:

DiskCacheStrategy.NONE 什么都不緩存入挣,就像剛討論的那樣
DiskCacheStrategy.SOURCE 僅僅只緩存原來的全分辨率的圖像亿乳。在我們上面的例子中,將會只有一個 1000x1000 像素的圖片
DiskCacheStrategy.RESULT 僅僅緩存最終的圖像径筏,即葛假,降低分辨率后的(或者是轉(zhuǎn)換后的)
DiskCacheStrategy.ALL 緩存所有版本的圖像(默認行為)

作為最后一個例子,如果你有一張圖片滋恬,你知道你將會經(jīng)常操作處理聊训,并做了一堆不同的版本,對其有意義的僅僅是緩存原始分辨率圖片恢氯。因此带斑,我們用 DiskCacheStrategy.SOURCE 去告訴 Glide 僅僅保存原始圖片:

Glide .with( context ) 
.load( eatFoodyImages[2] ) 
.diskCacheStrategy( DiskCacheStrategy.SOURCE )
.into( imageViewFile );
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末鼓寺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子勋磕,更是在濱河造成了極大的恐慌侄刽,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朋凉,死亡現(xiàn)場離奇詭異州丹,居然都是意外死亡,警方通過查閱死者的電腦和手機杂彭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評論 3 393
  • 文/潘曉璐 我一進店門墓毒,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人亲怠,你說我怎么就攤上這事所计。” “怎么了团秽?”我有些...
    開封第一講書人閱讀 163,524評論 0 353
  • 文/不壞的土叔 我叫張陵主胧,是天一觀的道長。 經(jīng)常有香客問我习勤,道長踪栋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評論 1 293
  • 正文 為了忘掉前任图毕,我火速辦了婚禮夷都,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘予颤。我一直安慰自己囤官,他們只是感情好,可當我...
    茶點故事閱讀 67,387評論 6 391
  • 文/花漫 我一把揭開白布蛤虐。 她就那樣靜靜地躺著党饮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪驳庭。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,287評論 1 301
  • 那天捏检,我揣著相機與錄音不皆,去河邊找鬼熊楼。 笑死能犯,一個胖子當著我的面吹牛犬耻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播枕磁,決...
    沈念sama閱讀 40,130評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼计济,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了沦寂?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,985評論 0 275
  • 序言:老撾萬榮一對情侶失蹤腻暮,失蹤者是張志新(化名)和其女友劉穎毯侦,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侈离,經(jīng)...
    沈念sama閱讀 45,420評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,617評論 3 334
  • 正文 我和宋清朗相戀三年抡草,在試婚紗的時候發(fā)現(xiàn)自己被綠了蔗坯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,779評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡腿短,死狀恐怖绘梦,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情卸奉,我是刑警寧澤,帶...
    沈念sama閱讀 35,477評論 5 345
  • 正文 年R本政府宣布凝颇,位于F島的核電站,受9級特大地震影響拧略,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜禽最,卻給世界環(huán)境...
    茶點故事閱讀 41,088評論 3 328
  • 文/蒙蒙 一袱饭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宁赤,春花似錦、人聲如沸决左。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽继找。三九已至,卻和暖如春婴渡,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背哄尔。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評論 1 269
  • 我被黑心中介騙來泰國打工柠并, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人臼予。 一個月前我還...
    沈念sama閱讀 47,876評論 2 370
  • 正文 我出身青樓粘拾,卻偏偏與公主長得像窄锅,于是被迫代替她去往敵國和親半哟。 傳聞我的和親對象是個殘疾皇子签餐,可洞房花燭夜當晚...
    茶點故事閱讀 44,700評論 2 354

推薦閱讀更多精彩內(nèi)容