今天講解的是谷歌推薦的圖片框架glide的詳細使用方法
首先打開AS工程-Android開發環境
添加依賴
implementation 'com.github.bumptech.glide:glide:4.5.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.5.0'添加網路許可權
<uses-permission android:name="android.permission.INTERNET" />圖片的使用
1、載入圖片到imageView
Glide.with(Context context).load(Strint url).into(ImageView imageView);2、各種形式的圖片載入到ImageView
// 載入本地圖片
File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(this).load(file).into(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);3、載入帶有占點陣圖
Glide.with(this).load(url).placeholder(R.drawable.loading).into(imageView);占點陣圖目的為在目的圖片還未載入出來的時候,提前展示給用戶的一張圖片;
4、載入失敗 放置佔位符
Glide.with(this).load(url).placeholder(R.drawable.loading).error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE)//關閉Glide的硬碟緩存機制
.into(imageView);
//DiskCacheStrategy.NONE: 表示不緩存任何內容。
//DiskCacheStrategy.SOURCE: 表示只緩存原始圖片。
//DiskCacheStrategy.RESULT: 表示只緩存轉換過後的圖片(默認選項)。
//DiskCacheStrategy.ALL : 表示既緩存原始圖片,也緩存轉換過後的圖片。5、載入指定格式的圖片–指定為靜止圖片
Glide.with(this)
.load(url)
.asBitmap()//只載入靜態圖片,如果是git圖片則只載入第一幀。
.placeholder(R.drawable.loading)
.error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(imageView);
6、載入動態圖片
Glide.with(this)
.load(url)
.asGif()//載入動態圖片,若現有圖片為非gif圖片,則直接載入錯誤占點陣圖。
.placeholder(R.drawable.loading)
.error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.into(imageView);7、載入指定大小的圖片
Glide.with(this)
.load(url)
.placeholder(R.drawable.loading)
.error(R.drawable.error)
.diskCacheStrategy(DiskCacheStrategy.NONE)
.override(100, 100)//指定圖片大小
.into(imageView)8、關閉框架的內存緩存機制
Glide.with(this)
.load(url)
.skipMemoryCache(true) //傳入參數為false時,則關閉內存緩存。
.into(imageView);
9、關閉硬碟的緩存
Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.NONE) //關閉硬碟緩存操作
.into(imageView);10、利用Glide將圖片載入到不同控制項或載入成不同使用方式
//1、通過自己構造 target 可以獲取到圖片實例
SimpleTarget<GlideDrawable> simpleTarget = new SimpleTarget<GlideDrawable>() {
@Override
public void onResourceReady(GlideDrawable resource, GlideAnimation glideAnimation) {
imageView.setImageDrawable(resource);
}
};
//2、將圖片實例記載到指定的imageview上,也可以做其他的事情
public void loadImage(View view) {
String url = "http://cn.bing.com/az/hprichbg/rb/TOAD_ZH-CN7336795473_1920x1080.jpg";
Glide.with(this)
.load(url)
.into(simpleTarget);
}
11、還有一些需要 要求預載入圖片,Glide 實現預載入
//a、預載入代碼
Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.preload();
//preload() 有兩種重載
// 1、帶有參數的重載,參數作用是設置預載入的圖片大小;
//2、不帶參數的表示載入的圖片為原始尺寸;
//b、使用預載入的圖片
Glide.with(this)
.load(url)
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
.into(imageView);12、監聽 Glide 載入的狀態
public void loadImage(View view) {
String url = "http://cn.bing.com/az/hprichbg/rb/TOAD_ZH-CN7336795473_1920x1080.jpg";
Glide.with(this)
.load(url)
.listener(new RequestListener<String, GlideDrawable>() {
@Override
public boolean onException(Exception e, String model, Target<GlideDrawable> target,
boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(GlideDrawable resource, String model,
Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) {
return false;
}
})
.into(imageView);
}原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/202440.html
微信掃一掃
支付寶掃一掃