Glide学习记录

Glide.with(this).load(url).into(imageView);

 with()方法可以接受Context、Activity、Fragment类型的参数。

  • with()方法中传入的实例会决定Glide加载图片的生命周期。如果传入的是Activity或者Fragmnet的实例,那么当这个Activity或者Fragment被销毁的时候,图片加载也会停止,如果传入的是ApplicationContext,那么只有当应用被杀掉的时候,图片加载才会停止。

 .placeholder(R.drawable.ic_launcher_background) ---->  占位图加载

 .diskCacheStrategy(DiskCacheStrategy.NONE) ----> 设置无缓存

.error(R.drawable.error) ----> 设置异常占位图 

.load("http://......") ----> 也可以加载GIF图,Glide会自动进行判断并且正确解析

 .asBitmap() ----> 设置只允许加载静态图片,不需要Glide帮我们自动进行图片的格式判断(GIF只会显示动画的第一帧)

.asGif() ----> 设置只允许加载GIF图,与asBitmap()不并存,如果加载静态图片则会显示异常占位图或不显示

.override(100,100) ----> 加载固定尺寸大小的图片即100*100像素的尺寸,Glide在绝大多数情况下我们不需要指定加载尺寸因为Glide会自动根据ImageView的大小来决定图片的大小

dontTransform() ----> 表示让Glide在加载图片的过程中不进行图片转换。ImageView可以设置scaleType,在不设置的情况下默认的是FIT_CENTER,那么当我们ImageView控件的宽高都是wrap_content时,默认使用Glide加载图片就会使用FIT_CENTRE加载图片,所以如果我们没有设置控件的宽高,只是想加载出图片原始大小,就需要使用dontTransform().
有一个缺陷在调用这个方法后,所有图片变换操作都会失效,如果一些图片变换操作需要执行,我们可以使用override()方法强制将图片尺寸指定城原始大小即可。用法如下:
.override(Target.SIZE_ORIGINAL,Target.SIZE_ORIGINAL)

我们都知道ImageView可以设置scaleType属性,Glide也给我们提供了两种更改图片变换操作的方法。
.fitCenter()  这个效果我们上面已经说到过,效果就是会将图片按照原始的长宽比充满全屏。
.centerCrop() 这个效果是将图片显示全屏,图片会变形,这个属性还可以配合override()方法来实现更加丰富的效果,比如指定图片裁剪的比例。
如果需要自定义图片变换的规则,需要继承 BitmapTransformation方法即可。只是如果我们每一种图片变换都自己去写,还是很麻烦,大家的需求效果都差不多,所以网上就又比较多的Glide的图片变换开源库。比较好的就是glide-transformations库。
glide-transformations的项目主页
这个库里面的强大功能包含 图片模糊化处理、图片添加滤镜等各种效果、图片各种形状处理等等,大家可以去主页看下,肯定会有所收获。也有很详细的介绍如何使用。在这我就不赘述了。

学习自郭霖大神的图片加载框架最全解析guolin博客首页

猜你喜欢

转载自blog.csdn.net/qq_34198206/article/details/83115266