框架系列 4:Glide
Glide 4.0新特性使用
Glide使用过程中问题:
-
- Glide4.6.1 GlideApp 无法生成的问题
-
- 判断Glide是否缓存了图片
-
- Glide的使用&GlideAPP怎么来的
-
- Glide中的缓存
-
- Android - 图片处理之Glide4.0版本
-
- 一个Glide升级新版本引发的血案
Glide使用及需要注意的事项
Glide的更多调用,可以参考Glide的官方文档译文 ###使用Glide加载图片
ImageView targetImageView = (ImageView) findViewById(R.id.imageView);
String internetUrl = "http://i.imgur.com/DvpvklR.png";
Glide
.with(context)
.load(internetUrl)
.into(targetImageView);
在这里需要注意的是,targetImageView如果大小是动态变化的,比如在项目需求中,我们需要GridView中的Item图片宽度等于高度,在listview或者gridView中频繁加载调用的话,有可能导致图片出现错乱或者加载不成功,解决方法是,使用override()方法固定图片源的宽高,避免短时间内多次重复加载。
这里的into方法还有很多的重载,具体的使用可以参考Glide的官方译文。
###使用Glide的扩展库,对图片进行处理 glide-transformations是一个基于Glide的transformation库,拥有圆角,裁剪,着色,模糊,滤镜等多种转换效果,以下主要介绍项目中常用的几种处理,需要有其它特效的可以自己去看github的使用说明。 ####裁剪一个圆形图片
Glide.with(this).load(R.drawable.demo)
.bitmapTransform(new CropCircleTransformation(context))
.into((ImageView) findViewById(R.id.image));
如果需要裁剪一个圆角图片,可以使用RoundedCornersTransformation(), ####高斯模糊
Glide.with(this).load(R.drawable.demo)
.bitmapTransform(new BlurTransformation(context, 25))
.into((ImageView) findViewById(R.id.image));
如果同时需要对一个图片进行圆角转换和高斯模糊的话,bitmapTransform的参数,是一个可变数组,我们的代码可以这样写
bitmapTransform(new BlurTransformation(context, 25), new CropCircleTransformation(context))
###后记 glide-transformations只是一个工具库,里面的工具类都是基于Glide的Transform接口,在Transform的基础上,我们也可以有一些自己的工具类,来实现一些特定的需求,Glide这个库,我并没有去深入的理解它的机制和流程(暂时没那么多时间去跟源码),有时间的小伙伴可以花一些时间,去把源码里,比较好的设计以及它的瓶颈在哪归纳整理出来,也是对自己的一种提高。
Glide 官网中文文档
参考链接:
- Android图片加载框架最全解析(一),Glide的基本用法(郭霖) * 1.1 https://blog.csdn.net/guolin_blog/article/details/53759439 * 1.2 https://blog.csdn.net/qq_22656383/article/details/77478631