Android-Glide

Glide是一个快速高效的Android图片加载库,可以自动加载网络、本地文件,app资源文件中的图片,注重于平滑的滚动

开源地址:https://github.com/bumptech/glide
中文文档:https://muyangmin.github.io/glide-docs-cn/

①引入glide

在gradle文件中的dependencies添加依赖

1
2
implementation 'com.github.bumptech.glide:glide:4.11.0'
annotationProcessor 'com.github.bumptech.glide:compiler:4.11.0'

②使用

相应权限

在清单文件中加入相应权限

1
2
3
4
//    访问网络
<uses-permission android:name="android.permission.INTERNET"/>
// 本地储存
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

简单的使用

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;
import com.bumptech.glide.Glide;

public class MainActivity extends AppCompatActivity {
private ImageView img;
private TextView text1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

text1 = findViewById(R.id.text1);
img = findViewById(R.id.img1);

Glide.with(this)
// 参数支持:url地址、file文件、文件对象、等等类型
// .load(R.mipmap.shuai)
.load("https://img0.baidu.com/it/u=1548103423,3809755433&fm=26&fmt=auto")
// ImageView对象传入
.into(img);
}
}

不做缓存

使加载的图片不写入本地缓存

1
2
3
4
5
Glide.with(context)
.load(imgFile)
.skipMemoryCache(true) //不做内存缓存
.diskCacheStrategy(DiskCacheStrategy.NONE) //不做磁盘缓存
.into(imageView);

设置圆角

自定义圆角角度

1
2
3
4
5
6
7
8
9
//    设置圆角角度
RoundedCorners roundedCorners= new RoundedCorners(10);
RequestOptions options = RequestOptions.
bitmapTransform(roundedCorners).
override(300, 300); //设置采样率,压缩图片,降低内存消耗
Glide.with(context)
.load(imgFile)
.apply(options)
.into(imageView);

圆形图片

1
2
3
4
5
RequestOptions options = RequestOptions.circleCropTransform()
Glide.with(context)
.load(imgFile)
.apply(options)
.into(imageView);

Glide占位符

Glide4中共有三种占位图

  1. placeholder: 正在请求图片时展示的图片
  2. error: 如果请求失败时展示的图片(如果没有设置,则展示placeholder)
  3. fallback: 请求的url/model为null时展示的图片(如果没有设置,则展示placeholder)

创建RequestOptions对象

1
2
3
4
5
6
7
8
9
  RequestOptions requestOptions = new RequestOptions()
// 正在请求中
.placeholder(R.mipmap.shuai)
// 请求失败时
.error(R.mipmap.shuai)
// 请求地址为null时
.fallback(R.mipmap.shuai)
// 图片大小,若未指定则以80x80加载
.override(100,100);

应用RequestOptions对象

1
2
3
4
5
  Glide.with(this)
.load("https://img0.baidu.com/it/u=1548103423,3809755433&fm=26&fmt=auto")
// 调用RequestOptions对象
.apply(requestOptions)
.into(img);