Glide和Picasso的优缺点比较

    xiaoxiao2021-04-14  52

    picasso和Glide结构设计

    picasso

    glide

    picasso和Glide加载图片代码使用结构

    picasso Picasso.with(context) .load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg") .into(ivImg); glide Glide.with(context) .load("http://inthecheesefactory.com/uploads/source/glidepicasso/cover.jpg") .into(ivImg);

    虽说看上去都一样,但是Glide更易用,因为Glide的with方法不光接受Context,还接受Activity 和 Fragment。 Activity 和 Fragment作为参数的好处:图片加载会和Activity 和 Fragment的生命周期一致 。比如在pause状态时暂停加载,resumed时又重新加载。建议传参的时候传Activity 和 Fragment

    picasso和Glide图片格式

    picasso默认的是ARGB_8888glide默认Bitmap格式是RGB_565 当然我们也可以创建一个新的GlideMoudle将bitmap格式转换成ARGB_8888

    picasso和Glide各自亮点

    Glide

    1.图片缓存->媒体缓存 不仅是一个图片缓存,它支持 Gif、WebP、缩略图。甚至是 Video,所以更该当做一个媒体缓存。 2.支持优先级处理 3.与 Activity/Fragment 生命周期一致,支持 trimMemory Glide 对每个 context 都保持一个 RequestManager,通过 FragmentTransaction 保持与 Activity/Fragment 生命周期一致,并且有对应的 trimMemory 接口实现可供调用。

    picasso

    1.自带统计监控功能(支持图片缓存使用的监控,包括缓存命中率、已使用内存大小、节省的流量等) 2.支持优先级处理(每次任务调度前会选择优先级高的任务,比如 App 页面中 Banner 的优先级高于 Icon 时就很适用) 3.支持延迟到图片尺寸计算完成加载 4.支持飞行模式、并发线程数根据网络类型而变 5.“无”本地缓存 (无”本地缓存,不是说没有本地缓存,而是 Picasso 自己没有实现,交给了 Square 的另外一个网络库 okhttp 去实现,这样的好处是可以通过请求 Response Header 中的 Cache-Control 及 Expired 控制图片的过期时间。)

    picasso和Glide内存需求区别

    我更喜欢Glide,因为它远比Picasso快,虽然需要更大的空间来缓存。

    picasso和Glide缓存区别

    Picasso和Glide在磁盘缓存策略上有很大的不同。Picasso缓存的是全尺寸的,而Glide缓存的是跟ImageView尺寸相同的。

    将ImageView调整成不同大小,但不管大小如何Picasso只缓存一个全尺寸的。Glide则不同,它会为每种大小的ImageView缓存一次。

    转载请注明原文地址: https://ju.6miu.com/read-670398.html

    最新回复(0)