Glide的学习和使用

Glide是一款由Bump Technologies开发的图片加载框架,使得我们可以在Android平台上以极度简单的方式加载和展示图片。

1.Glide的引入—在app/build.gradle 当中添加如下依赖

dependencies {
    compile 'com.github.bumptech.glide:glide:3.7.0'
}

2.权限的添加Glide中需要用到网络功能,因此你还得在AndroidManifest.xml中声明一下网络权限才行:

<uses-permission android:name="android.permission.INTERNET" />

glide可以完成的功能
(1)加载网络上的图片
(2)加载手机本地的图片
(3)加载应用资源中的图片

一行代码实现了图片加载

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

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

(2)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);

//加载网络图片
String url = "http://img4.imgtn.bdimg.com/it/u=1495511926,3386591440&fm=23&gp=0.jpg";
Glide.with(this).load(url).into(imageView);

(3)into()方法,决定让图片显示在哪一个控件上,在load()和into()方法之间串接任意想添加的功能

占位图概念—图片未加载成功时显示的默认图片

.placeholder(R.mipmap.ic_launcher) // can also be a drawable

禁用磁盘缓存功能

diskCacheStrategy(DiskCacheStrategy.NONE)//默认为DiskCacheStrategy.SOURCE

去明确告诉 Glide 跳过内存缓存。这意味着 Glide 将不会把这张图片放到内存缓存中去。

.skipMemoryCache(true)

异常占位图

error(R.drawable.error)

指定图片格式

指定只以静态图片格式显示
asBitmap()方法,这个方法的意思就是说这里只允许加载静态图片,不需要Glide去帮我们自动进行图片格式的判断了。

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

指定加载图片的大小,不管imageview大小

override(100,100) //传入的单位是px,resizes the image to these dimensions (in pixel). does not respect aspect ratio

Glide既缓存全尺寸又缓存其他尺寸:

Glide.with(this)
     .load("http://nuuneoi.com/uploads/source/playstore/cover.jpg")
     .diskCacheStrategy(DiskCacheStrategy.ALL)
     .into(ivImgGlide);

—添加淡入淡出动画,里面可以添加参数毫秒值

.crossFade()

—禁用动画效果

 dontAnimate() 

Center Cropping
CenterCrop()是一个裁剪技术,即缩放图像让它填充到 ImageView 界限内并且侧键额外的部分。ImageView 可能会完全填充,但图像可能不会完整显示。

.CenterCrop()

fitCenter() 是裁剪技术,即缩放图像让图像都测量出来等于或小于 ImageView 的边界范围。该图像将会完全显示,但可能不会填满整个 ImageView。

.fitCenter() 

Transforming

.transform(new CircleTransform(context))

图片请求优先级

.priority( Priority.LOW )

Notes:(图片优先级)

Priority.LOW 
Priority.NORMAL 
Priority.HIGH 
Priority.IMMEDIATE
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值