简单实用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() {
            @Override
            public void onResourceReady(Bitmap resource,Transition 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 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);  

 

你可能感兴趣的:(控件,配置)