Android 图片加载

前言

在实际开发过程中 , 我们都要用到图片加载 , 从最开始的Imageloader , 到后来相继推出的Glide , Picasso , Fresco . 功能更加强大 , 使用也更加方面, 但是它们使用场景基本相同 , 同样也存在一些区别 . 总之 , 没有最好的框架, 只有适合自己的框架.

三大图片加载框架

  1. picasso
  2. Glide
  3. Fresco

介绍

Picasso :

和Square的网络库一起可以发挥最大作用 , 因为Picasso可以选择将网络请求的缓存部分交给okHttp实现.

Glide :

模仿了Picasso的API , 而且在Picasso的基础上加了很多的扩展 (比如对gif的支持), Glide默认的Bitmap格式是RGB_565 , 比Picasso默认的ARGB_8888格式的内存开销要小一些 ; Picasso缓存的是全尺寸的 , 而Glide缓存的是和ImageView尺寸相同的

Fresco : 最大的优势在于支持5.0以下(最低2.3)的bitamp的加载 . 在5.0以下系统中 , Fresco将图片放到一个特别的内存区域(Ashmen区) . 当然 , 在图片不显示的时候 , 占用的内存会自动释放. 这会使得APP更加流畅 , 减少因图片内存占用而引起的OOM . 为什么说是5.0以下系统啦 , 因为5.0以后系统默认是存储在Ashmen区了 .

总结

Picasso能够实现的功能 , Glide都可以做 . 但是Picasso体积比Glide要小很多 , 如果项目中网络请求本身使用的是okHttp或者retrofit , 那么建议使用Picasso . Glide的好处是对大型的图片流 , 比如gif , video,支持较好 .

Fresco在5.0以下的内存优化比较好 ,代价是体积比较大 , 按照体积比较 Fresco > Glide >Picasso

在实际开发过程中, 通常是将Fresco自己封装一下 ,直接使用它的Bitmap层.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,679评论 25 708
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,996评论 2 59
  • 这么久以来虽然经常用到一些图库,但是自己从来没有真正整理过我们使用过的这些东西有什么不同点,我们为什么要选择这个图...
    黑石ZB阅读 3,786评论 1 16
  • 7.1 压缩图片 一、基础知识 1、图片的格式 jpg:最常见的图片格式。色彩还原度比较好,可以支持适当压缩后保持...
    AndroidMaster阅读 2,581评论 0 13
  • 用一次次挑战的里程碑见证成长。 01 早起打卡坚持156天,晨间日记156天,4月读书7本,今年累计读书38本,包...
    奔跑的一梦阅读 116评论 0 0