简单实用Glide的功能

一、配置

dependencies {
    //...
    implementation 'com.github.bumptech.glide:glide:4.8.0'
    implementation 'jp.wasabeef:glide-transformations:4.0.1'
}

如果想使用Glide新特性-->GlideApp建造者模式的话请配置,使用方法请搜索Glide新特性

dependencies {
    //...
    annotationProcessor 'com.github.bumptech.glide:compiler::4.8.0'
}

二、使用

1.基本使用

Glide.with(context).load(xxx).into(xxx);

2.占位符、异常使用

RequestOptions option = new RequestOptions()
        .placeholder(R.drawable.ic_launcher_background)// 占位符
        .error(R.drawable.ic_launcher_background)// 异常;

Glide.with(context).load(xxx).apply(option).into(xxx);

3.圆角处理

RequestOptions option = new RequestOptions()
.transform(new RoundedCornersTransformation(CommonUtil.INSTANCE.dp2px(context, 6), 0));

Glide.with(context).load(xxx).apply(option).into(xxx);

4.模糊处理

RequestOptions option = new RequestOptions()
.transform(new BlurTransformation(25));

Glide.with(context).load(xxx).apply(option).into(xxx);

5.黑白处理

RequestOptions option = new RequestOptions()
.transform(new GrayscaleTransformation());

Glide.with(context).load(xxx).apply(option).into(xxx);

6.多个效果

MultiTransformation multi = new MultiTransformation(
                new BlurTransformation(25),
                new RoundedCornersTransformation(128, 0, RoundedCornersTransformation.CornerType.ALL));

Glide.with(context).load(xxx).apply(multi).into(xxx);

7.压缩图片

Glide.with(context)
        .asBitmap()
        .load(xxx)
        .into(new SimpleTarget<Bitmap>() {
            @Override
            public void onResourceReady(Bitmap resource,Transition<? super Bitmap> transition) {
                mThumBitmap = Bitmap.createScaledBitmap(resource, 50, 50, true);
                Log.d(TAG, "压缩后图片的大小" + (mThumBitmap.getByteCount() / 1024)
                        + "KB宽度为" + mThumBitmap.getWidth() + "高度为" + mThumBitmap.getHeight());
                imageView.setImageBitmap(resource);
            }
        });

8.缩略图

//用原图的1/10作为缩略图
Glide.with(context)
        .load(xxx)
        .thumbnail(0.1f)
        .into(iv_0);

//用其它图片作为缩略图
DrawableRequestBuilder<Integer> thumbnailRequest = Glide
        .with(context)
        .load(R.drawable.xxx);

Glide.with(context)
        .load(xxx)
        .thumbnail(thumbnailRequest)
        .into(iv_0);

9.缓存使用

1.设置内存缓存开关

skipMemoryCache(true)//是否跳过内存缓存,默认false 不跳过

2.设置磁盘缓存模式

diskCacheStrategy(DiskCacheStrategy.NONE)

可以设置4种模式

DiskCacheStrategy.NONE:表示不缓存任何内容。

DiskCacheStrategy.SOURCE:表示只缓存原始图片。

DiskCacheStrategy.RESULT:表示只缓存转换过后的图片(默认选项)。

DiskCacheStrategy.ALL :表示既缓存原始图片,也缓存转换过后的图片。

RequestOptions options = new RequestOptions(); 
options.skipMemoryCache(true).diskCacheStrategy(DiskCacheStrategy.NONE);
Glide.with(this).load(xxx).apply(options).into(xxx);

3.标签signature的使用

问题:Glide加载相同URL时由于缓存无法更新图片

可以通过更改缓存配置解决该问题以外,还可以通过设置signature标签使每次的请求都是一个新的请求

//在需要重新获取图片时调用 
String sign = String.valueOf(System.currentTimeMillis()); 
Glide.with(this).load(xxx).signature(new StringSignature(sign)).into(xxx);  

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值