美文网首页
android随笔之图片加载Glide、Fresco、Picas

android随笔之图片加载Glide、Fresco、Picas

作者: android老菜鸟 | 来源:发表于2020-07-28 09:55 被阅读0次

    Glide:

    功能特点:

    1,图片异步加载,设置加载尺寸,设置加载动画,设置加载中和加载失败的图片,加载的图片格式丰富:JPG,PNG,GIF,WEBP支持设置缩略图 ;
    2,加载的图片路径多种:网络本地资源assets等;
    3,缓存特点:跳过内存缓存,缓存动态清理,设置缓存策略;
    4,其他特点:生命周期集成,设置动态转换,设置下载优先级;

    优点:

    1,使用简单,可配置度高,自适应程度高;
    2,多样化媒体加载:Glide不仅是一个图片缓存,支持常见的图片格式jpg png gif webp;
    3,生命周期集成:根据Activity/fragment生命周期自动管理请求将Activity/Fragment作为with()参数的好处是:图片加载会和Activity/Fragment的生命周期保持一致,比如Paused状态在暂停加载,在Resumed的时候又自动重新加载;
    4,高效的缓存策略:
    (1)支持Memory和Disk图片缓存;
    (2)Picasso缓存的是全尺寸的,而Glide缓存的是跟ImageView尺寸相同的;
    (3)内存开销小,Glide加载的图片质量要差于Picasso,因为Glide默认的Bitmap格式是RGB_565 ,比ARGB_8888格式的内存开销要小一半;
    (4)高效处理bitmap,使用bitmap pool使bitmap复用,主动调用recycle回收需要回收的bitmap,减少系统回收压力;
    (5)图片缓存->媒体缓存;
    (6)支持优先级处理;
    (7)支持 okhttp、Volley;

    缺点

    1,使用方法复杂;
    2,由于Glide其功能强大,所以使用的方法非常多,其源码也相对的复杂;
    3,包较大;

    Fresco

    功能特点:

    1,两个内存缓存加上本地缓存构成了三级缓存;
    2,渐进式呈现图片;
    3,支持加载的Gif图和WebP的格式;

    优点:

    1,内存自动回收。图片不可见时,会及时自动释放所占用的内存,尽可能地避免OOM ;
    2,三级缓存机制。两级内存缓存(解码的与未解码的)+一级磁盘缓存,提升加载速度,节省内存占用空间 ;
    3,支持各种加载场景。如动图加载,高斯模糊等常见的图片加载场景。另外还提供了独特的渐进式加载,先加载小图再加载大图,加载进度等功能(很强大) ;

    缺点:

    1,框架较大,影响Apk体积 ;
    2,侵入性较强。须使用它提供的SimpleDraweeView来代替ImageView的加载显示图片;

    Picasso

    功能特点:

    1、Picasso是全尺寸下载图片;
    2、Picasso默认的缓存格式为ARGB_888;
    3、链式调用,使用简单;
    4、具有一般图片框架的基础功能;
    5、方便的图片转换;(图片高斯模糊,添加圆角,做度灰处理,圆形图片);
    6、加载过程监听和错误处理;
    7、自动添加磁盘和内存二级缓存;
    8、支持多种数据源加载;
    9、Picasso默认不支持Gif图片加载。Picasso库很小,类也很少,库仅118KB大小;
    10、Picasso支持调试和日志;

    相关文章

      网友评论

          本文标题:android随笔之图片加载Glide、Fresco、Picas

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