Glide的基本用法

目录

加载图片

占位图

指定图片格式

指定图片大小


加载图片

Glide.with(this).load(url).into(imageView);

调用Glide.with()方法用于创建一个加载图片的实例。with()方法可以接收Context、Activity、Fragment类型的参数,选择范围广,with()方法中传入的实例会决定Glide加载图片的生命周期,如果传入的是Activity或者Fragment的实例,那么当这个Activity或Fragment被销毁的时候,图片也会停止;如果传入的是ApplicationContext,那么只有当应用程序被杀掉的时候,图片加载才会停止。

调用.load()方法用于指定待加载的图片资源。Glide支持加载各种各样的图片资源,包括网络图片、本地图片、应用资源、二进制流、URL对象等,因此load()方法也有很多个方法重载:

// 加载本地图片
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);

占位图

Glide占位图功能的使用方法:

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .into(imageView);

Glide异常占位图功能的使用方法:

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .into(imageView);

指定图片格式

Glide只允许加载静态图片代码,加入一个asBitmap()方法:

Glide.with(this)
     .load(url)
     .asBitmap()
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .into(imageView);

Glide强制指定加载动态图片,调用了asGif():

Glide.with(this)
     .load(url)
     .asGif()
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .into(imageView);

指定图片大小

常见的加载图片造成的内存浪费:例如一张图片的尺寸是1000*1000像素,但是ImageView只有200*200像素,如果不对图片进行任何压缩就直接读取到内存中,这就属于内存浪费。

而使用Glide,就完全不用担心图片内存浪费,甚至是内存溢出的问题。Glide从来都不会直接将图片的完整尺寸全部加载到内存中,而是用多少加载多少。Glide会自动判断ImageView的大小,然后只将图片像素大小加载到内存当中,帮助节省内存开支。

绝大多数情况下都不需要指定图片大小,Glide会自动根据ImageView的大小来决定图片的大小。

不过有需要也可以给图片指定一个固定的大小:

Glide.with(this)
     .load(url)
     .placeholder(R.drawable.loading)
     .error(R.drawable.error)
     .diskCacheStrategy(DiskCacheStrategy.NONE)
     .override(100, 100)
     .into(imageView);

如上面使用override()方法指定了一个图片的尺寸。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值