2018-09-17

2018-09-17  本文已影响7人  Lost_Robot

前言

在实际开发过程中 , 我们都要用到图片加载 , 从最开始的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层.

上一篇下一篇

猜你喜欢

热点阅读