目前最重要的是帶著所有的請求放到記憶體和磁碟中。雖然快取通常是很有用的,但在某些情況下,它可能不是像期待的行為那樣。在下一節中,我們會看看如何為單個請求改變 glide 的快取行為。
如果你以前用過 glide。你會發現不需要去做任何額外的事情來啟用快取。它直接就從盒子裡取出來用了!然而,如果你知道一張變化很快,你可能想要避免某些快取。
glide 提供了方法去適配記憶體和磁碟快取行為。讓我們先看看記憶體快取。
讓我們想象乙個非常簡單的請求,從網路中載入到imageview
。
glide
.with
(context).
load
(eatfoodyimages[0
]).skipmemorycache
(true).
into
(imageviewinternet
);
你已經注意到,我們呼叫了.skipmemorycache(true)
去明確告訴 glide 跳過記憶體快取。這意味著 glide 將不會把這張放到記憶體快取中去。這裡需要明白的是,這只是會影響記憶體快取!glide 將會仍然利用磁碟快取來避免重複的網路請求。
這也容易知道 glide 將會預設將所有的資源放到記憶體快取中去。因為,指明呼叫.skipmemorycache(false)
是沒有必要的。
你可以用.diskcachestrategy()
方法為 glide 改變磁碟快取的行為。不同的於.skipmemorycache()
方法,它需要乙個列舉而不是乙個簡答的布林值。如果你想要為乙個請求禁用磁碟快取。使用列舉diskcachestrategy.none
作為引數。
glide
.with
(context).
load
(eatfoodyimages[0
]).diskcachestrategy
(diskcachestrategy
.none).
into
(imageviewinternet
);
在這段**片段中將不會被儲存在磁碟快取中。然而,預設的它將仍然使用記憶體快取!為了把這裡兩者都禁用掉,兩個方法一起呼叫:
glide
.with
(context).
load
(eatfoodyimages[0
]).diskcachestrategy
(diskcachestrategy
.none).
skipmemorycache
(true).
into
(imageviewinternet
);
正如我們之前提到的,glide 有多個選項去配置磁碟快取行為。在我們向你展示這些選項之前,你必須了解到 glide 的磁碟快取是相當複雜的。比如,picasso 僅僅快取了全尺寸的影象。然而 glide 快取了原始影象,全解析度影象和另外小版本的影象。比如,如果你請求的乙個影象是 1000x1000 畫素的,但你的imageview
是 500x500 畫素的,glide 將會把這兩個尺寸都進行快取。
現在你將會理解對於.diskcachestrategy()
方法來說不同的列舉引數的意義:
glide
.with
(context).
load
(eatfoodyimages[2
]).diskcachestrategy
(diskcachestrategy
.source).
into
(imageviewfile
);
在這篇部落格中,你已經了解了 glide 影象快取工作的基礎知識以及你如何根據你的需求去調整它的行為。在後面的部落格中,我們會回頭來做更高階的優化。然而,這個部落格開了個頭,給了你乙個非常有效的方法去獲得最出色的 glide 快取行為。
Glide初步使用
1.新增引用 build.gradle 中新增配置 compile com.github.bumptech.glide glide 3.7.0 2.設定繫結生命週期 我們可以更加高效的使用glide提供的方式進行繫結,這樣可以更好的讓載入的請求的生命週期動態管理起來 glide.with conte...
Glide簡單使用
新增引用 build.gradle 中新增配置 compile com.github.bumptech.glide glide 3.7.0 設定載入中以及載入失敗 api裡面對placeholder error 函式中有多型實現 用的時候可以具體的熟悉一下 glide.with this load ...
Glide基本使用
glide是一款由bump technologies開發的載入框架,使得我們可以在android平台上以極度簡單的方式載入和展示。目前,glide最新的穩定版本是3.7.0,雖然4.0已經推出rc版了,但是暫時問題還比較多。因此,我們這個系列的部落格都會使用glide 3.7.0版本來進行講解,這個...