Glide使用詳解

2021-09-29 19:30:46 字數 3010 閱讀 5175

compile'com.github.bumptech.glide:glide:4.8.0'

annotationprocessor 'com.github.bumptech.glide:compiler:4.8.0'

//它可以監聽使用者的連線狀態並在使用者重新連線到網路時重啟之前失敗的請求

//用於硬碟快取和讀取

glide支援網路資源、assets資源、resources資源、file資源、uri資源、位元組陣列, 支援靜態和動態;

glide.with(context context).load(strint url).into(imageview imageview);

// 載入本地

// 載入應用資源

int resource=r.drawable.image;

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

// 載入二進位製流

byte image=getimagebytes();

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

// 載入uri物件

uri imageuri=getimageuri();

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

glide.with(this).load(imageurl).asbitmap().into(imageview);

//載入動態gif

glide.with(this).load(imageurl).asgif().into(imageview);

我們可以通過結合設定requestoptions來對進行處理,比如快取的設定,大小,裁剪等;

requestoptions options = new requestoptions()

.placeholder(r.mipmap.loading) //載入成功之前佔位圖

.error(r.mipmap.loading) //載入錯誤之後的錯誤圖

.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) //只快取最終的

.donttransform() //禁用圖形變換功能,這個方法時全域性的,導致其他地方的也不可進行圖形變換了,慎用.

.dontanimate();//跳過動畫

glide.with(this)

.load(url)

.asbitmap()//只載入靜態,如果是git則只載入第一幀。

.asgif()//載入動態,若現有為非gif,則直接載入錯誤佔位圖。

.thumbnail(0.1f) //先載入縮圖

.crossfade() //淡入淡出效果, 此屬性在4.8.0上不適用

.into(imageview);

我們也可以通過配置glidemodule來修改 glide 的一些初始化配置。比如:glide 預設使用低質量的 rgb565, 你可以使用 glide module 方法去改變解碼規則

public class glidemoduleutil implements glidemodule 

@override

public void registercomponents(context context, glide glide,registry registry)

}

glidebuilder 中可用的方法。

.setmemorycache(memorycache memorycache)

.setdiskcache(diskcache.factory diskcachefactory)

.setdiskcacheservice(executorservice service)

.setresizeservice(executorservice service)

.setdecodeformat(decodeformat decodeformat)

builder.setdecodeformat(decodeformat.prefer_argb_8888);
//清理磁碟快取 需要在子執行緒中執行

glide.get(this).cleardiskcache();

//清理記憶體快取 可以在ui主線程中進

glide.get(this).clearmemory();

Glide使用詳解

以androidstudio為例,在build.gradle中新增依賴 dependenciesandroidmanifest.xml中宣告一下網路許可權 android name android.permission.internet 1載入string url glide.with this l...

Glide使用詳解(二)

int getmaxsize void setsizemultiplier float sizemultiplier boolean put bitmap bitmap bitmap get int width,int height,bitmap.config config 由於該方法會擦除bitm...

Glide初步使用

1.新增引用 build.gradle 中新增配置 compile com.github.bumptech.glide glide 3.7.0 2.設定繫結生命週期 我們可以更加高效的使用glide提供的方式進行繫結,這樣可以更好的讓載入的請求的生命週期動態管理起來 glide.with conte...