Glide框架一

一、加载本地资源、资产目录、SD卡中的图像

基本语法:

Glide.with(context).load(url).into(imageView控件)

1.加载资源图片

Glide.with(context).load(R.mipmap.ic_launcher).into(imageView控件)

2.加载资产目录图片

Glide.with(context).load("file:///android_asset/logo.png").into(imageView控件)

3.加载SD Card图片文件

Glide.with(context).load(new File("路径")).into(imageView控件)

4.加载网络图片

Glide.with(context).load(url网络地址).into(imageView控件)

二、Glide的DrawableRequestBuilder常用设置

1.设置占位图片(链式写法)

Glide.with(context).load(url).placeholder(R.mipmap.ic_empty).error(R.mipmap.ic_error).into(imageview控件)

2.淡入淡出

.crossFade()

3.无动画

.dontAnimate()

4.图片重新调整大小

.override(width,height)

【备注】Picasso中是:resize  、resizeDimen

5.图片裁切类型 centerCrop   Center

【备注】Picasso中是:centerCrop 、fit、centerInside

6.自定义图形转换

.transform()

7.放弃内存缓存memory cache

.skipMemoryCache(true)    跳过内存缓存,默认使用内存缓存

.diskCacheStrategy(DiskCacheStrategy.NONE)  不使用磁盘缓存

如果即不使用内存缓存又不是用磁盘缓存,则从网络加载。

以下为四种缓存方式

1)DiskCacheStrategy.ALL缓存所有的图

2)DiskCacheStrategy.NONE什么都不缓存

3)DiskCacheStrategy.SOURCE仅仅只缓存原来的全分辨率的图像

4)DiskCacheStrategy.RESULT仅仅缓存最终的图像,即经过调整或转换后的(默认行为)

【备注】Picasso中是设置(内存策略):.memoryPolicy(MemoryPolicy.NO_CACHE,MemoryPolicy.NO_STORE)

三、Glide与Picasso区别:

1.with的参数不同

Picasso.with( 参数)  参数:Context context

--------------------------------------

Glide.with(参数):

Glide中的可以是:

Context context

Activity activity

FragmentActivity activity

Fragment fragment

----------------------------------

将Activity/Fragment作为with()的参数的好处是:

1)图片加载会和Activity、Fragment的生命周期保持一致,比如Paused状态就暂停加载,在Resumed状态就自动重新加载

2)建议传参数的时候传递Activity和Fragment给Glide,而不是Context

2.图片的质量

默认的:Glide 的Bitmap格式是RGB_565(2个字节)

Picasso默认是ARGB_8888(4个字节)

默认的不进行任何图片质量的设置,Glide的占用的内存更小。

3.加载GIF图片

Picassco 只加载GIF图片的第一帧没有动画效果

Glide会加载GIF图片所有帧,有动画效果,但是需要消耗更多的内存

4.缓存策略及加载速度不同

Glide的加载速度快于Picasso.为啥呢?因为Picasso缓存的全尺寸的,而Glide缓存的跟ImageView控件的尺寸相同(也就是说:将ImageView调整成不同大小,不管大小如何设置,Picasso只缓存一个全尺寸的。Glide则不同,它会为每种大小的ImageView缓存一次,然后根据你ImageView的尺寸,需要那个就去加载那个,所以快)

Glide的这种特点让加载显示非常快。而Picasso因为需要在显示之前重新调整大小而导致一些延迟(即使添加了noFade 无淡入淡出效果)

四、总结:

1.Glide比Picasso加载速度快,但Glide比Picasso需要更大的空间来缓存

2.Glide加载图像及磁盘缓存的方式都优与Picasso,且Glide有利于减少

OutOfmemoryError的发生

3.GiF动画是Glided的杀手锏

你可能感兴趣的:(Glide框架一)