Glide是一款Google推荐的图片加载库,它功能强大,我们不但可以通过他来加载本地存储的图片,还可以加载网络上或者是Uri路径的图片。除了加载图片之外,我们还可以通
过他来加载GIF图片和本地的Video。在加载图片之后我们还可以他来设置图片的大小,图片缓存,图片的显示动画还有缩略图等等。总之作为一款图片加载库Glide是非常优秀
的。说了这么多下面就让我们看看他是怎么用的吧。
一、加载一个图片资源(这里的资源可以是一个URL地址、也可以是系统的资源如drawable和mipmap里的资源、也可以是本地系统文件里的、抑或是一个Uri)
示例代码
image = (ImageView) findViewById(R.id.image);
Glide.with(this)//参数为context
.load(url)//加载的图片资源
.into(image);//将要显示图片的控件
效果(其实没什么效果,就是显示一张图片)
二、关于使用图片占位符
一个是未加载完成使用的占位符(placeHolder()),另一个是加载错误使用的占位符(error())
Glide.with(this)
.load(url)
.placeholder(R.mipmap.ic_launcher)
.error(R.drawable.ic_error)
.into(image);
三、关于图片的大小调整(override(x,y))和缩放(有两个centerCrop和fitCenter)
override会将图片设置为设置的大小,然后会去填充显示的控件
centerCrop他是一种裁剪技术,通过缩放图片让他填充到ImageView的界内并且裁剪额外的部分,imageView可能会完全填充但是图像可能不会完整显示
fitCenter他是将图片缩放来完全显示在控件内
Glide.with(this)
.load(url)
.placeholder(R.mipmap.ic_launcher)
.error(R.drawable.ic_error)
.override(200, 300)
.centerCrop()
.into(image);
Glide.with(this)
.load(url)
.placeholder(R.mipmap.ic_launcher)
.error(R.drawable.ic_error)
.override(200, 300)
.fitCenter()
.into(image);
三、显示gif和本地视频资源(这个和显示图片的资源的方法基本是一样的都是通过load()方法)
四、缓存
Glide框架会进行两步缓存(内存缓存和磁盘缓存),不过你可以通过skipMemoryCache(true)来避免内存缓存,但是这样他还是会进行内存缓存,因为他要避免重复的网络请
求,当然你还是可以阻止磁盘缓存的,通过diskCacheStrategy(_)来设置是否磁盘缓存,这里的参数是一个枚举值,包含四个值
DiskCacheStrategy.NONE 什么都不缓存
DiskCacheStrategy.SOURCY只缓存原来的全分辨率图像(即原图)
DiskCacheStrategy.RESULT 缓存当前你显示的图像(即变化过后的图片)
DiskCacheStrategy.ALL 缓存所有图片
五、图像显示的优先级
当你需要同时显示多张图片时(比如一个网络相册),可能页面的顶部用来显示一张封面的的图片,下面用来显示相册内容图片,这个时候你可能就要让第一张图片能够先显示
出来,这时你可以用priority(_)来设置,这里有四个权限,从低到高依次是
Priority.LOW,Priority.NORMAL,Priority.HIGH,Priority.IMMEDIATE