Glide的学习和使用

来源:互联网 发布:mac os 国外软件推荐 编辑:程序博客网 时间:2024/05/21 11:33

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