以androidstudio為例,在build.gradle中新增依賴:
dependencies
androidmanifest.xml中宣告一下網路許可權:
android:name="android.permission.internet"/>
1載入string url="";
glide.with(this).load(url).into(imageview);
先with(),再load(),最後into(),這是最簡單的三部曲
load使用:
1.載入本地
2.載入應用資源
int resource = r.drawable.image;
glide.with(this).load(resource).into(imageview);
3.載入二進位製流
byte image = getimagebytes();
glide.with(this).load(image).into(imageview);
4.載入uri物件
uri imageuri = getimageuri();
glide.with(this).load(imageuri).into(imageview);
2載入gif圖
string
gifurl=""
;glide.with(this).load(gifurl).asgif().into(imageview);
3設定佔位圖和載入錯誤圖glide.with(context).load(url)
.placeholder(r.mipmap
.ic_launcher)
.error(r.mipmap
.ic_launcher)
.into(imageview)
4快取glide.with(context).load(url)
.skipmemorycache(false)
.diskcachestrategy(diskcachestrategy.none)
.into(imageview)
glide是預設開啟記憶體快取和磁碟快取的,上述**.skipmemorycache(false)和.diskcachestrategy(diskcachestrategy.none) 表示關閉記憶體快取和磁碟快取,在特定的情況下需要關閉,比如多次獲取驗證碼,如果後台返回的url是一致的,不關閉快取的話,每次顯示的都和第一張一樣。
磁碟快取的型別5其他方法diskcachestrategy.none 不快取
diskcachestrategy.all 快取原始圖和處理之後的
diskcachestrategy.source 快取原始圖
diskcachestrategy.result 快取處理之後的
清除快取
glide.get(context).clearmemory(); // 須在ui執行緒中呼叫
glide.get(context).cleardiskcache(); //須在子執行緒中呼叫
1.指定資源的優先載入順序
//優先載入
glide
.with(context)
.load(url)
.priority(priority.high)
.into(imageview);
//後載入
glide
.with(context)
.load(url)
.priority(priority.low)
.into(imageview);
2.設定載入尺寸
glide.with(context).load(imageurl).override(100, 100).into(imageview);
3.直接獲取
******target******target=new ******target()
};public
void
loadimage(view view)
4.glide使用圓角或者圓形
4.1 圓形
public
class
glidecircletransform
extends
bitmaptransformation
@override
return circlecrop(pool, totransform);
}private
if (source == null) return
null;
int size = math.min(source.getwidth(), source.getheight());
int x = (source.getwidth() - size) / 2;
int y = (source.getheight() - size) / 2;
// todo this could be acquired from the pool too
bitmap squared = bitmap.createbitmap(source, x, y, size, size);
bitmap result = pool.get(size, size, bitmap.config.argb_8888);
if (result == null)
canvas canvas = new canvas(result);
paint paint = new paint();
paint.setshader(new bitmapshader(squared, bitmapshader.tilemode.clamp, bitmapshader.tilemode.clamp));
paint.setantialias(true);
float r = size / 2f;
canvas.drawcircle(r, r, r, paint);
return result;
}@override
public string getid()
}
4.2 使用圓角
public
class
glideroundtransform
extends
bitmaptransformation
public
glideroundtransform(context context, int dp)
@override
return roundcrop(pool, totransform);
}private
if (source == null) return
null;
bitmap result = pool.get(source.getwidth(), source.getheight(), bitmap.config.argb_8888);
if (result == null)
canvas canvas = new canvas(result);
paint paint = new paint();
paint.setshader(new bitmapshader(source, bitmapshader.tilemode.clamp, bitmapshader.tilemode.clamp));
paint.setantialias(true);
rectf rectf = new rectf(0f, 0f, source.getwidth(), source.getheight());
canvas.drawroundrect(rectf, radius, radius, paint);
return result;
}@override
public string getid()
}
4.3呼叫方式
glide.with(context).load(url)
.transform(newglidecircletransform(context))
.into(imageview);
glide.with(context).load(url)
.transform(new glideroundtransform(this,3))
.into(imageview); //圓角預設是4
上述包括了glide基本用法。 Glide使用詳解
compile com.github.bumptech.glide glide 4.8.0 annotationprocessor com.github.bumptech.glide compiler 4.8.0 它可以監聽使用者的連線狀態並在使用者重新連線到網路時重啟之前失敗的請求 用於硬碟快取和...
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...