目錄
1. Glide API
2. Glide導入包
3. Glide 7種加載圖檔方式
4. 取消加載
5 Glide加載GIF
6. Glide的RequestOptions
6.1 RequestOptions的API:
6.2 設定占位圖
6.3 設定錯誤圖檔
6.4 淡入淡出動畫
6.5 圖檔大小減小剪裁
6.6 圓形圖檔
6.7 縮略圖
6.8 緩存設定
6.9 優先級設定
6.10 清空緩存
7. Glide自定義圓角
8. RequestBuilder
9. Glide設定Listener
10 Glide初始化配置
6. Glide的RequestOptions
6.1 RequestOptions的API:
官方API:https://muyangmin.github.io/glide-docs-cn/javadocs/400/com/bumptech/glide/request/RequestOptions.html
參考設定:https://muyangmin.github.io/glide-docs-cn/doc/options.html
6.2 設定占位圖
網絡慢時圖檔加載不出來,需要設定預設圖檔;
//延時1秒
Thread.sleep(1000);
String imageUrl = "http://img.ivsky.com/img/tupian/pre/201806/20/dengta-008.jpg";
ImageView imageView = (ImageView) findViewById(R.id.img_show);
RequestOptions options = new RequestOptions().placeholder(R.mipmap.img1);
Glide.with(getApplicationContext()).load(imageUrl).apply(options).into(imageView);
6.3 設定錯誤圖檔
網絡連接配接錯誤或者加載的路徑錯誤,需要設定錯誤時顯示的圖檔;
String errorUrl = "https://timgsa.baidu.com/24243.jpg";
ImageView imageView = (ImageView) findViewById(R.id.img_show);
RequestOptions options = new RequestOptions().placeholder(R.mipmap.img1).error(R.mipmap.img_error);
Glide.with(getApplicationContext()).load(errorUrl).apply(options).into(imageView);
6.4 淡入淡出動畫
必須導入:
import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
/**
* 記得導入:import static com.bumptech.glide.load.resource.drawable.DrawableTransitionOptions.withCrossFade;
*/
Glide.with(context).load(imageUrl).transition(withCrossFade()).into(imageView);
6.5 圖檔大小減小剪裁
必須添加:centerCrop()或fitCenter()才可以;
- centerCrop()是将圖檔按照比例放大到imageview的尺寸;
- fitCenter()是将圖檔按照比例縮小到imageview的尺寸;
options = new RequestOptions().override(100, 100).centerCrop();
Glide.with(context).load(imageUrl).apply(options).into(imageView);
6.6 圓形圖檔
方法一:
options = new RequestOptions().placeholder(R.mipmap.img1).error(R.mipmap.img_error).circleCrop();
Glide.with(context).load(imageUrl).apply(options).into(imageView);
方法二:
Glide.with(context).load(imageUrl).apply(RequestOptions.circleCropTransform()).into(imageView);
6.7 縮略圖
方法一:
RequestBuilder builder = Glide.with(context).asDrawable().thumbnail(/*sizeMultiplier=*/ 0.25f);
Glide.with(context).load(imageUrl).thumbnail(builder).load(/*縮略圖路徑*/imageUrl2).into(imageView);
方法二:
Glide.with(context).load(imageUrl).thumbnail(/*sizeMultiplier=*/ 0.25f).load(imageUrl2).into(imageView);
6.8 緩存設定
skipMemoryCache :
true 關閉記憶體緩存,false 打開記憶體緩存
diskCacheStrategy:
DiskCacheStrategy.NONE 關閉磁盤緩存
DiskCacheStrategy 的枚舉意義:
- DiskCacheStrategy.NONE: 表示不緩存任何内容。
- DiskCacheStrategy.DATA: 表示隻緩存原始圖檔。
- DiskCacheStrategy.RESOURCE: 表示隻緩存轉換過後的圖檔。
- DiskCacheStrategy.ALL : 表示既緩存原始圖檔,也緩存轉換過後的圖檔。
- DiskCacheStrategy.AUTOMATIC: 表示讓Glide根據圖檔資源智能地選擇使用哪一種緩存政策(預設選項)。
//關閉記憶體緩存和磁盤緩存
options = new RequestOptions().skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE);
Glide.with(context).load(imageUrl).apply(options).into(imageView);
6.9 優先級設定
Priority的枚舉:
- Priority.LOW
- Priority.NORMAL
- Priority.HIGH
- Priority.IMMEDIAT
options = new RequestOptions().priority(Priority.HIGH);
Glide.with(context).load(imageUrl).apply(options).into(imageView);
6.10 清空緩存
//清空記憶體緩存,要求在主線程中執行
Glide.get(mContext).clearMemory();
//清空磁盤緩存,要求在背景線程中執行
Glide.get(mContext).clearDiskCache();