1、Github
https://github.com/bumptech/glide
Glide的配置
compile 'com.github.bumptech.glide:glide:3.7.0'
网络加载图片,增加网络权限
<uses-permission android:name="android.permission.INTERNET" />
2、
Glide.with(Context context);
不管是在Activity还是Fragment中调用with()方法,都可以直接传this。将Activity/Fragment作为with()参数的好处是,图片加载会和Activity/Fragment的生命周期保持一致。
3、Glide支持网络资源、assets资源、Resources资源、File资源、Uri资源、字节数组
Glide.with(context).load("http://xxx.jpg").into(imageView);
Glide.with(context).load("file:///xxx.png").into(imageView);
Glide.with(context).load(R.mipmap.ic_launcher).into(imageView);
File file = new File(getExternalCacheDir() + "/image.jpg");
Glide.with(context).load(file).into(imageView);
Glide.with(context).load(uri).into(imageView);
Glide.with(context).load(byte[]).into(imageView);
4、不管我们传入的是一张普通图片,还是一张GIF图片,Glide都会自动进行判断,并且可以正确地把它解析并展示出来。
如果加载静态gif图片,在界面上显示第一帧的图片:
Glide.with(this).load(imageUrl).asBitmap().into(imageView);
加载动态gif图片
Glide.with(this).load(imageUrl).asGif().into(imageView);
如果指定了只能加载动态图片,而传入的图片却是一张静图的话,那么就加载失败。
5、占位图,设置加载中图片
.placeholder(R.drawable.placeholder)
设置加载失败图片
.error(R.drawable.error)
6、先加载缩略图 然后在加载全图
Glide.with(this).load(imageUrl).thumbnail(0.1f).into(imageView);
7、动画
淡入淡出效果
Glide.with(this).load(imageUrl).crossFade().into(imageView);
无动画
Glide.with(this).load(imageUrl).dontAnimate().into(imageView);
自定义动画
Glide.with(this).load(imageUrl).animate(R.anim.alpha_in).into(imageView);
8、设置监听回调
Glide.with(this).load(imageUrl).listener(RequestListener listener).into(imageView);
9、设置加载尺寸
//指定尺寸,加载成800*800像素的尺寸
Glide.with(this).load(imageUrl).override(800, 800).into(imageView);
//拉伸截取中间部分显示
Glide.with(this).load(imageUrl).centerCrop().into(imageView);
//等比拉伸填满ImageView
Glide.with(this).load(imageUrl).fitCenter().into(imageView);
10、设置缓存策略
设置跳过内存缓存
Glide.with(this).load(imageUrl).skipMemoryCache(true).into(imageView);
设置缓存策略
Glide.with(this).load(imageUrl).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView);
DiskCacheStrategy.ALL:缓存源资源和转换后的资源
DiskCacheStrategy.NONE:不作任何磁盘缓存,禁用掉Glide的缓存功能
DiskCacheStrategy.SOURCE:缓存源资源
DiskCacheStrategy.RESULT:缓存转换后的资源
清理缓存
//清理磁盘缓存 需要在子线程中执行
Glide.get(this).clearDiskCache();
//清理内存缓存 可以在UI主线程中进
Glide.get(this).clearMemory();
11、Glide在Github上还有一个库,可以处理图片效果,比如裁剪、圆角、高斯模糊等等
引入依赖库
compile 'jp.wasabeef:glide-transformations:2.0.1'
实现高斯模糊
//radius取值1-25,值越大图片越模糊
Glide.with(context).load(url).bitmapTransform(new BlurTransformation(context, radius)).into(imageView);
参考:http://blog.csdn.net/qq_30379689/article/details/60373696