注册

Android三方库glide的使用

glide

Glide 是一个图片加载库,跟它同类型的库还有 Picasso、Fresco、Universal-Image-Loader 等。

glide库的优点:

加载类型多样化:Glide 支持 Gif、WebP 等格式的图片。
生命周期的绑定:图片请求与页面生命周期绑定,避免内存泄漏。
使用简单(链式调用),且提供丰富的 Api 功能 (如: 图片裁剪等功能)。
高效的缓存策略:
支持多种缓存策略 (Memory 和 Disk 图片缓存)。
根据 ImageView 的大小来加载相应大小的图片尺寸。
内存开销小,默认使用 RGB_565 格式 (3.x 版本)。
使用 BitmapPool 进行 Bitmap 的复用。
首先,使用glide需要添加依赖,在当前项目的build.gradle下加入以下代码:

implementation 'com.github.bumptech.glide:glide:4.8.0'
其次,在加载图片时,若需要网络请求或者本地内存的访问,需要在当前项目的AndroidManifest.xml中加入请求权限代码:

//用于网络请求

//它可以监听用户的连接状态并在用户重新连接到网络时重启之前失败的请求

//用于硬盘缓存和读取

glide的使用

Glide.with(MainActivity) .load(R.mipmap.image) .into(imageView);

with()方法可以接收Context、Activity或者Fragment类型的参数。
load()方法中不仅可以传入图片地址,还可以传入图片文件File,resource,图片的byte数组等。
into()参数可以直接写图片控件,如需要给其他控件添加背景图片,则需要:
.into(new SimpleTarget(){
@Override
public void onResourceReady(Bitmap resource, Transition transition) {
Drawable drawable = new BitmapDrawable(resource);
mConstraintLayout.setBackground(drawable);
}
});

加载本地图片:

File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(this).load(file).into(imageView);

加载应用资源:

int resource = R.drawable.image;
Glide.with(this).load(resource).into(imageView);

加载二进制流:

byte[] image = getImageBytes();
Glide.with(this).load(image).into(imageView);

加载Uri对象:

Uri imageUri = getImageUri();
Glide.with(this).load(imageUri).into(imageView);

注意with()方法中传入的实例会决定Glide加载图片的生命周期,如果传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片加载也会停止。如果传入的是ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会停止。
取消图片:Glide.with(this).load(url).clear();
————————————————
版权声明:本文为CSDN博主「maisomgan」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_45828419/article/details/115632155

1 个评论

学到了

要回复文章请先登录注册