Glide:谷歌推荐的一个网络图片加载库,和Picasso类似,Picasso缓存的是原图,而Glide缓存的是你所设置的Imageview的大小的图片。
使用:
1、导入Glide库和V4包,因为Glide依赖于V4
dependencies {
compile 'com.android.support:support-v4:24.0.0-beta1'
compile 'com.github.bumptech.glide:glide:3.7.0'
}
2、Glide的一般用法
Glide.with(MainActivity.this)
//网络图片的地址
.load("http://img3.imgtn.bdimg.com/it/u=3729580552,646614237&fm=21&gp=0.jpg")
//加载图片的控件
.into(imageView);
效果:
以上就是Glide的一般用法,我们在项目里很可能要用到其它一些需求,比如加载图片前显示什么,加载完成后要做什么等等,这就需要用到Glide的一些其它方法了。
更多配置:
Glide.with(MainActivity.this)
//网络图片的地址
.load("http://img0.imgtn.bdimg.com/it/u=2700801873,2162292373&fm=21&gp=0.jpg")
//重新设置图片的尺寸
.override(200,200)
//加载失败显示的图片
.error(R.drawable.ic_launcher)
//设置加载前的占位图
.placeholder(R.drawable.ic_launcher)
//让Glide既缓存全尺寸又缓存其他尺寸
.diskCacheStrategy(DiskCacheStrategy.ALL)
//均衡的缩放图像(保持图像原始比例),
// 使图片的两个坐标(宽、高)都大于等于 相应的视图坐标(负的内边距)。图像则位于视图的中央
.centerCrop()
//加载到imageView控件
.into(imageView);
以下内容引用自:
http://blog.csdn.net/shangmingchao/article/details/51125554
thumbnail(float sizeMultiplier).
请求给定系数的缩略图。如果缩略图比全尺寸图先加载完,就显示缩略图,否则就不显示。系数sizeMultiplier必须在(0,1)之间,可以递归调用该方法。
sizeMultiplier(float sizeMultiplier).
在加载资源之前给Target大小设置系数。
diskCacheStrategy(DiskCacheStrategy strategy).
设置缓存策略。
DiskCacheStrategy.SOURCE:缓存原始数据,
DiskCacheStrategy.RESULT:缓存变换后的资源数据,DiskCacheStrategy.NONE:什么都不缓存,
DiskCacheStrategy.ALL:缓存SOURC和RESULT。
默认采用DiskCacheStrategy.RESULT策略,对于download only操作要使用DiskCacheStrategy.SOURCE。
priority(Priority priority).
指定加载的优先级,优先级越高越优先加载,但不保证所有图片都按序加载。
枚举Priority.IMMEDIATE,Priority.HIGH,Priority.NORMAL,Priority.LOW。默认为Priority.NORMAL。
dontAnimate().
移除所有的动画。
animate(int animationId).
在异步加载资源完成时会执行该动画。
animate(ViewPropertyAnimation.Animator animator).
在异步加载资源完成时会执行该动画。
placeholder(int resourceId).
设置资源加载过程中的占位Drawable。
placeholder(Drawable drawable).
设置资源加载过程中的占位Drawable。
fallback(int resourceId).
设置model为空时要显示的Drawable。
如果没设置fallback,model为空时将显示error的Drawable,如果error的Drawable也没设置,就显示placeholder的Drawable。
fallback(Drawable drawable).
设置model为空时显示的Drawable。
error(int resourceId).
设置load失败时显示的Drawable。
error(Drawable drawable).
设置load失败时显示的Drawable。
listener(RequestListener
skipMemoryCache(boolean skip).
设置是否跳过内存缓存,但不保证一定不被缓存(比如请求已经在加载资源且没设置跳过内存缓存,这个资源就会被缓存在内存中)。
override(int width, int height).
重新设置Target的宽高值(单位为pixel)。
into(Y target).
设置资源将被加载到的Target。
into(ImageView view).
设置资源将被加载到的ImageView。取消该ImageView之前所有的加载并释放资源。
into(int width, int height).
后台线程加载时要加载资源的宽高值(单位为pixel)。
preload(int width, int height).
预加载resource到缓存中(单位为pixel)。
asBitmap().
无论资源是不是gif动画,都作为Bitmap对待。如果是gif动画会停在第一帧。
asGif().
把资源作为GifDrawable对待。如果资源不是gif动画将会失败,会回调.error()。
注意:
清除内存缓存:
// 必须在UI线程中调用
Glide.get(context).clearMemory();
清除磁盘缓存:
// 必须在后台线程中调用,建议同时clearMemory()
Glide.get(applicationContext).clearDiskCache();