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)
.load("https://img0.baidu.com/it/u=1548103423,3809755433&fm=26&fmt=auto")
.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中共有三种占位图
- placeholder: 正在请求图片时展示的图片
- error: 如果请求失败时展示的图片(如果没有设置,则展示placeholder)
- 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)
.fallback(R.mipmap.shuai)
.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")
.apply(requestOptions) .into(img);
|