Glide使用總結

2021-08-21 12:28:46 字數 2844 閱讀 8388

首先使用之前需要將這個庫引入到我們的專案中

dependencies
載入

glide.with(this).load(url).into(imageview);

就是這一行**,就是with(),load(),into()這三步完成了乙個的載入,即可以載入靜態還可以載入動態

下邊分析一下glide是如何在這三步中載入乙個的

首先,glide.with(this)方法用於建立乙個載入的例項,可以傳入的引數看下圖:

圖中可以看到我們可以傳入的有context,activity和fragment。但是我們傳入的例項決定著載入的生命週期。所以需要慎重選擇。

再來看load(),傳入我們需要載入的資源。具體還是看圖

圖中可以看到load有很多個過載方法。這也體現出它載入的全面性。可以是uri,本地,二進位製流,網路,應用資源等。

// 載入uri物件

uri imageuri = getimageuri();

glide.with(this).load(imageuri).into(imageview);

// 載入本地

// 載入二進位製流

byte image = getimagebytes();

glide.with(this).load(image).into(imageview);

// 載入網路

string url = "";

glide.with(this).load(url).into(imageview);

// 載入應用資源

int resource = r.drawable.image;

glide.with(this).load(resource).into(imageview);

最後就是into()了,這個很簡單,我們需要將顯示在那個控制項上,將這個例項傳進去就可以了。

以上簡單的三步已經可以簡單的使用glide載入了。但是僅僅以上在實際工作中是不能夠滿足要求的。比如說我們在載入網路的時候是需要時間的,而在載入的這段時間的位置是空白的抬不美觀,或者說因為網路或其他原因導致載入失敗的時候,仍然是空白都很不美觀。所以我們就需要佔位圖來解決這個問題。

佔位圖就是在載入的時候先顯示一張臨時的,等載入出來之後再替換掉。這樣做在使用者體驗上會好很多。glide已經給我們封裝好了api,我們直接用就好

glide.with(this)

.load(url)

.placeholder(r.mipmap.default)

.into(imageview);

就這麼簡單,就只是在load()和into()之間新增了乙個placeholder()而已。同樣,載入失敗我們也需要一張載入失敗的佔位圖,也是glide封裝好的api,直接上**

glide.with(this)

.load(url)

.placeholder(r.mipmap.default)

.error(r.mipmap.error)

.into(imageview);

以上兩種情況的佔位圖都有了,但是你會發現,只有第一次載入的時候才能看到placeholder()的佔位圖,之後基本上都看不到。這就涉及到了glide的快取問題,glide的快取機制很強大,第一次載入的時候已經將快取下來了,下次載入的時候就直接在快取中取,所以載入速度特別快。

開始的時候就說了,glide還可以載入gif圖。什麼額外的**都不需要新增,glide內部會自動判斷,如果是gif圖,顯示出來的就是gif圖。但有時候我們只想要靜態圖,那我們也可以自己指定格式。**同樣很簡單:

glide.with(this)

.load(url)

.asbitmap()

.placeholder(r.mipmap.default)

.error(r.mipmap.error)

.into(imageview);

僅僅加了乙個asbitmap()方法,這個意思就是說只允許載入靜態,即便我們傳入的url是一張gif圖,也只會顯示第一幀。

同理,既然可以設定只載入靜態,肯定也能設定只載入gif圖。**如下:

glide.with(this)

.load(url)

.asgif()

.placeholder(r.mipmap.default)

.error(r.mipmap.error)

.into(imageview);

但需要主要的是,如果我們傳入的是乙個靜態,就會載入失敗。

實際開發中,我們基本上不會用到的。因為glide在載入的時候不會直接將完整的快取到記憶體中,他會根據imageview的大小來載入,這也是為什麼不會用到的原因。glide是不是很智慧型呢?!

但是儘管不會用到,還是介紹下指定大小的方式

glide.with(this)

.load(url)

.asgif()

.placeholder(r.mipmap.default)

.error(r.mipmap.error)

.override(100,100)

.into(imageview);

是不是也很簡單。指定乙個尺寸之後,glide不會去計算imageview的大小有多大,只會載入指定大小的。

glide使用總結

1 glide是什麼 glide是乙個載入和快取庫。2 glide的使用 第一,新增依賴 implementation com.github.bumptech.glide glide 4.5.0 annotationprocessor com.github.bumptech.glide compil...

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 ...