Glide的基本用法(图片加载库)
1.设置占位图
placeholder(R.drawable.picture)
2.设置加载错误时的图片
error(R.drawable.error)
3.设置缩略图
thumbnail(0.1f) //用原图的十分之一作为缩略图
4.设置请求优先级
priority(Priority.HIGH)
优先级越高越优先加载,但不保证所有图片都按序加载。可选参数:
枚举Priority.IMMEDIATE,Priority.HIGH,Priority.NORMAL,Priority.LOW。默认为Priority.NORMAL。
5.缓存
//缓存原始数据
.diskCacheStrategy(DiskCacheStrategy.SOURCE)
//缓存变换后的资源数据(例如:缩放、裁剪等情况)
.diskCacheStrategy(DiskCacheStrategy.RESULT)
//不进行磁盘缓存
.diskCacheStrategy(DiskCacheStrategy.NONE)
//原始数据和变换后的资源数据都缓存
.diskCacheStrategy(DiskCacheStrategy.ALL)
//对本地和远程图片使用最佳的策略,加载远程数据时,仅会存储原图,因为在磁盘上调整原图更省时间。加载本地数据时,仅会存储变换过的缩略图,因为取得原始数据很容易
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
//禁止内存缓存
.skipMemoryCache(true)
//清除内存缓存 必须在UI线程中调用
Glide.get(context).clearMemory();
//清除磁盘缓存 必须在后台线程中调用,建议同时clearMemory()
Glide.get(applicationContext).clearDiskCache();
6.Glide图片变换
引入: implementation ‘jp.wasabeef:glide-transformations:4.0.1’
常用的几种效果
Crop(剪裁: 圆角,圆形,正方形…)
1.CropTransformation
2.CropCircleTransformation
3.CropSquareTransformation
4.RoundedCornersTransformation
Color(过滤色: 素描,反转…)
1.ColorFilterTransformation
2.GrayscaleTransformation
Blur(模糊…)
1.BlurTransformation
Mask(遮罩…)
1.MaskTransformation
6.简单用法
引入:
implementation ‘com.github.bumptech.glide:glide:4.13.2’
annotationProcessor ‘com.github.bumptech.glide:compiler:4.13.2’
用法:
Glide.with(context).load(url).into(imageView);
with里填上下文,load里面填写url,into填写要下载到的控件对象
7.加载本地图片
下面展示一些 内联代码片
。
//读取加载本地的图片
textView1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int resourceId=R.mipmap.ic_launcher_round;
Glide.with(context).load(resourceId).into(imageView1);
}
});
8.加载SD卡的图片
textView2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String path="path路径名称";
File file=new File(path);
Glide.with(context).load(file).into(imageView2);
}
});
9.网络加载
textView3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Glide.with(context).load("网络在线图片地址").into(imageView3);
}
});
10.圆形图片
//自定义图片和圆形图片
textView4.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
bitmap= BitmapFactory.decodeResource(context.getResources(),R.mipmap.image1);
Glide.with(context).load(bitmap)
.placeholder(R.mipmap.ic_launcher_round)
.apply(RequestOptions.bitmapTransform(new CircleCrop()))
.into(imageView4);
}
});
11.圆角图片
textView5.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Glide.with(context).load(bitmap)
//缓存图片
.diskCacheStrategy(DiskCacheStrategy.AUTOMATIC)
.apply(RequestOptions.bitmapTransform(new RoundedCornersTransformation(5,3)))
.into(imageView5);
}
});
12.初始化默认图片和加载失败时的图片,图片加载优先级
textView6.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Glide.with(context).load(bitmap)
.placeholder(R.mipmap.ic_launcher)
//指定加载的优先级,优先级越高优先加载的概率越高
.priority(Priority.IMMEDIATE)
.error(R.mipmap.ic_launcher_round)
.centerCrop().into(imageView6);
}
});
13.缩略图
textView7.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Glide.with(context).load(bitmap)
.thumbnail(0.1f)
.into(imageView7);
}
});
14.复古照片(黑白化)
textView8.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Glide.with(context).load(bitmap)
.apply(RequestOptions.bitmapTransform(new GrayscaleTransformation()))
.into(imageView8);
}
});
15.GIF加载 动态图片
textView10.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Glide.with(context).load("gif图片的地址")
.into(imageView10);
}
});
16.图片填充
textView11.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Glide.with(context).load(bitmap).centerCrop().into(imageView11);
}
});
}