一、加载本地资源、资产目录、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的杀手锏
网友评论