天天看点

Android图片缓存框架 - Glide的RequestOptions (四)

目录

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 的枚举意义:

  1. DiskCacheStrategy.NONE: 表示不缓存任何内容。
  2. DiskCacheStrategy.DATA: 表示只缓存原始图片。
  3. DiskCacheStrategy.RESOURCE: 表示只缓存转换过后的图片。
  4. DiskCacheStrategy.ALL : 表示既缓存原始图片,也缓存转换过后的图片。
  5. DiskCacheStrategy.AUTOMATIC: 表示让Glide根据图片资源智能地选择使用哪一种缓存策略(默认选项)。
//关闭内存缓存和磁盘缓存
options = new RequestOptions().skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE);

Glide.with(context).load(imageUrl).apply(options).into(imageView);
           

6.9 优先级设置

Priority的枚举:

  1. Priority.LOW
  2.  Priority.NORMAL
  3.  Priority.HIGH
  4. 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();
           

继续阅读