Glide 4 7 1 學習使用。

2021-08-20 15:23:42 字數 2357 閱讀 5781

現在android上的載入框架非常成熟,從最早的老牌載入框架universalimageloader,到後來google推出的volley,再到後來的新興軍glide和picasso,當然還有facebook的fresco。每乙個都非常穩定,功能也都十分強大。但是它們的使用場景基本都是重合的,也就是說我們基本只需要選擇其中乙個來進行學習和使用就足夠了,每乙個框架都嘗試去掌握的話則有些浪費時間。

glide和picasso 有90%相似度,而glide在picasso基礎上進行的二次開發,可以其優勢顯而易見。universalimageloader已停止服務,所以決定學習glidet和fresco.本篇主要介紹glide使用。

repositories

dependencies

# for dexguard only

載入三步走,1,with; 2,load; 3 into;

string url = "";

glide.with(this)

//with()方法可以接收context、activity或者fragment型別的引數

.load(url)

.into(imageview);

取消也是三步走,1,with; 2,load; 3 clear;

glide.with(this).load(url).clear();

一般來很少會用到取消的,因為圖會跟with(this)生命週期消亡而消亡的。

requestoptions options = new requestoptions()

.placeholder(r.mipmap.ic_launcher)

//載入成功之前佔位圖

.error(r.mipmap.ic_launcher)

//載入錯誤之後的錯誤圖

.override(400,400)

//指定的尺寸

//指定的縮放型別為fitcenter (等比例縮放,寬或者是高等於imageview的寬或者是高。)

.fitcenter()

//指定的縮放型別為centercrop (等比例縮放,直到的狂高都大於等於imageview的寬度,然後擷取中間的顯示。)

.centercrop()

.circlecrop()//指定的縮放型別為centercrop (圓形)

.skipmemorycache(true)

//跳過記憶體快取

.diskcachestrategy(diskcachestrategy.all)

//快取所有版本的影象

.diskcachestrategy(diskcachestrategy.none)

//跳過磁碟快取

.diskcachestrategy(diskcachestrategy.data)

//只快取原來解析度的

.diskcachestrategy(diskcachestrategy.resource)

//只快取最終的

;glide.with(this)

.load(url)

.into(imageview);

注意 實際上,使用glide在大多數情況下我們都是不需要指定大小的,因為glide會自動根據imageview的大小來決定的大小,以此保證不會占用過多的記憶體從而引發oom。不過,如果你真的有這樣的需求,必須給指定乙個固定的大小,glide仍然是支援這個功能的。修改glide載入部分的**,仍然非常簡單,這裡使用override()方法指定了乙個的尺寸。也就是說,glide現在只會將載入成400*400畫素的尺寸,而不會管你的imageview的大小是多少了。如果你想載入一張的原始尺寸的話,可以使用target.size_original關鍵字,.override(target.size_original);這樣的話,glide就不會再去自動壓縮,而是會去載入的原始尺寸。當然,這種寫法也會面臨著更高的oom風險。

這個diskcachestrategy()方法基本上就是glide硬碟快取功能的一切,它可以接收五種引數:

diskcachestrategy.none: 表示不快取任何內容。

diskcachestrategy.automatic: 表示讓glide根據資源智慧型地選擇使用哪一種快取策略(預設選項)。

glide其中乙個非常亮眼的功能就是可以載入gif,而同樣作為非常出色的載入框架的picasso是不支援這個功能的。而且使用glide載入gif圖並不需要編寫什麼額外的**,glide內部會自動判斷格式。

但是如果我想指定載入格式該怎麼辦呢?想實現這個功能仍然非常簡單,我們只需要再串接乙個新的方法就可以了

glide.with(this)

.asbitmap()

.load(url)

.into(imageview);

當然還有一些其它功能和用法,由於時間問題就到這裡,後續將補上。

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版本來進行講解,這個...