Glide是谷歌官方推荐的一个Android图片库,既然如此,肯定有一些比较特别的地方。总得来看,Glide是我所了解的Android图片库中,功能最强大的一个了。从代码复杂度来看,估计也就Fresco能与其相比了。
关于Glide的用法,本文只是简单梳理了下。你也可以参考这个系列文章,写的比较全面详细
https://mrfu.me/2016/02/27/Glide_Getting_Started/
源码方面,本文基于3.7做了一些关键点的分析。代码里各种泛型看的眼花缭乱……
Glide特点
-
生命周期:图片的加载、GIF图片的播放,可和页面的生命周期一致。可接受Activity、Fragment、FragmentActivity、ApplicationContext。
实现原理:
Glide对每个页面维护了一个单独的RequestManager。
对于每一个Activity或Fragment,在其中添加一个RequestManagerFragment作为子Fragment,其生命周期和父组件Activity或Fragment的生命周期一致,在RequestManagerFragment中onStart、onStop、onDestroy中调用相应方法。
对于ApplicationContext,只调用了onStart方法。
优点: 可自动根据页面生命周期,开始/暂停加载图片、展示动态图片。
缺点: 会消耗更多资源。使用时如果不了解相关特性,容易