美文网首页
Glide框架一

Glide框架一

作者: 让你独一无二 | 来源:发表于2016-09-09 13:47 被阅读0次

    一、加载本地资源、资产目录、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框架一

          本文链接:https://www.haomeiwen.com/subject/opmeettx.html