Glide詳細了解優缺點

2021-08-14 07:07:35 字數 3993 閱讀 5788

目錄

google的開源專案

功能列表

2.2.1 關於載入imageview targetimageview = (imageview) findviewbyid(r.id.imageview);

string url = "";

//glide使用了流式介面的呼叫方式

//glide類是核心實現類。

glide.with(context).load(url).into(targetimageview);

//with(context context)

//context對於很多android api的呼叫都是必須的,這裡就不多說了

//大多情況下,乙個字串代表乙個網路的url。

//into(imageview targetimageview):最終要展示的地方。

glide

.with(this).load(imageurl).override(800, 800).into(imageview);

glide

.with(this)

.load(imageurl)

.placeholder(r

.mipmap

.ic_launcher).error(r

.mipmap

.ic_launcher).into(imageview);

glide

.with(this).load(imageurl).animate(r

.anim

.item_alpha_in).into(imageview);

api也提供了幾個常用的動畫:比如crossfade()

r.anim.item_alpha_in

<?xml version="1.0" encoding="utf-8"

?>

xmlns:android="">

android:duration="500"

android:fromalpha="0.0"

android:toalpha="1.0"/>

set>

glide.with(this).load(imageurl).centercrop().into(new ******target() 

});

2.2.2 多樣式的**載入
glide

.with(context)

.load(imageurl);

.thumbnail(0.1f);//設定縮圖支援:先載入縮圖 然後在載入全圖

//傳了乙個 0.1f 作為引數,glide 將會顯示原始影象的10%的大小。

//如果原始影象有 1000x1000 畫素,那麼縮圖將會有 100x100 畫素。

.asbitmap()//顯示gif靜態

.asgif();//顯示gif動態

.into(imageview);

2.2.3 關於快取
glide.with(this).load(imageurl).diskcachestrategy(diskcachestrategy.all).into(imageview);

// 快取引數說明

// diskcachestrategy.result:只快取轉換後的(即最終的影象:降低解析度後 / 或者轉換後 ,不快取原始

glide

.with(this)

.load(imageurl)

.skipmemorycache(true)

.into(imageview);

//設定跳過記憶體快取

//這意味著 glide 將不會把這張放到記憶體快取中去

//這裡需要明白的是,這只是會影響記憶體快取!glide 將會仍然利用磁碟快取來避免重複的網路請求。

glide.get(this).cleardiskcache();//清理磁碟快取 需要在子執行緒中執行 

glide.get(this).clearmemory();//清理記憶體快取 可以在ui主線程中進行

2.2.4 其他設定
.with(context context)// 繫結context

.with(activity activity);// 繫結activity

.with(fragmentactivity activity);// 繫結fragmentactivity

.with(fragment fragment);// 繫結fragment

注意:

傳入的context型別影響到glide載入的優化程度

glide

.with(this).load(imageurl).centercrop().into(imageview);

glide

.with(this).load(imageurl).priority(priority

.normal).into(imageview);

沒有demo的**講解不是好文章,讓我們來一步步學會使用glide。

步驟1:在gradle新增依賴

compile 'com.github.bumptech.glide:glide:3.7.0'
步驟2:新增網路許可權

android:name="android.permission.internet"/>

步驟1和步驟2是glide使用的前提,千萬別忘了!!!!

步驟3:在mainactivity中

imageview targetimageview = (imageview) findviewbyid(r.id.imageview);

string url = "";

glide

.with(this)

.load(url)

.into(targetimageview);

還有具體其他功能需要配置的自己按照我上面寫的進行配置就好了~

4.1 優點

比如你 imageview 大小是200200,原圖是 400400 ,而使用 glide 就會快取 200200 規格的圖,而 picasso 只會快取 400400 規格的。這個改進就會導致 glide 比 picasso 載入的速度要快,畢竟少了每次裁剪重新渲染的過程,非常靈活 & 載入速度快

c. 記憶體開銷小

預設的 bitmap 格式是 rgb_565 格式,而 picasso 預設的是 argb_8888 格式,這個記憶體開銷要小一半。

alpha_8:每個畫素占用1byte記憶體

argb_4444:每個畫素占用2byte記憶體

argb_8888:每個畫素占用4byte記憶體(預設,色彩最細膩=顯示質量最高=占用的記憶體也最大)

rgb_565:每個畫素占用2byte記憶體(8bit = 1byte)

舉例說明:乙個32位的png=argb_8888=1204x1024,那麼占用空間是:1024x1024x(32/8) = 4,194,304kb=4m左右

在解析的時候,為了避免oom和節省記憶體,最好使用argb_4444模式(節省一半的記憶體空間)

4.2 缺點

詳細了解SQLITE 優缺點 效能測試

什麼是sqlite sqlite是乙個開源免費的資料庫,一般用於嵌入系統或者小規模的應用軟體開發中,你可以像使用access一樣使用它,你可以免費用於任何應用,包括商業應用,另外,它還支援各種平台和開發工具,這點是某些資料庫 比如access dbisam sqlite的主要優點 零配置 zero ...

apply call詳細了解

function thisobj argarray call 方法 function call thisobj arg1 arg2.定義 call 呼叫乙個物件的乙個方法,用另乙個物件替換當前物件。例 b.call a,args1,args2 a物件應用b物件的方法 他們都是用來代替另乙個物件呼叫乙...

詳細了解 Cookie Session Token

很久很久以前,web基本上就是文件的瀏覽而已,既然是瀏覽,作為伺服器 不需要記錄誰在某一段時間裡都瀏覽了什麼文件。每次請求都是乙個新的http協議,就是請求加響應,尤其不用記住是誰則剛發了http請求,每個請求相對來說都是全新的。也就是說必須把每個人區分開,這是乙個不小的挑戰,因為http請求是無狀...