·背景
之前出于兴趣,做了一个阅读资讯类的app(github地址:
Github-More
),图片加载框架采用的是Glide,觉得用起来特别方便,而且效果也很不错,后来看到了郭霖大神的博客有对Glide框架的解析(郭霖的博客对Glide框架分成了几个部分写,而且可能还在连载中,有兴趣可以搜一下郭霖的博客),内容比较多,研读了几天,并且也查阅相关资料,同时也做了一些实践,打算写一篇自己近期对Glide的一个总结。·Glide简介
Glide是当下比较流行的一个图片加载库,与其有相似功能的还有:Volley,Picasso,Fresco。相比之下,这些框架有以下各自的特点:
- Volley 单线程,而且不支持本地图片加载
- 另外三个框架的功能都比较相似,相对而言,Picasso和Glide的用法相对比较简单。具体的比较可以参考这篇Blog:比较Picasso、Glide 和 Fresco 三种图片加载库
More是基于一个开源项目改的,原项目采用的是Volley的图片加载框架,而我采用的则是Glide框架。因此接下来我将简述一下Glide框架的一些特性。
首先是Glide的用法,Glide的用法特别简单,一句话就完成了图片加载代码:
Glide.with(this).load(url).into(imageView);
其中,.with()方法是创建一个加载图片的实例,.load()负责加载网络或本地资源,into()则是将图片资源显示到对应的控件中。
接下来对Glide的几个常用方法进行简单解释。
with()方法
接下来对Glide的几个常用方法进行简单解释。
with()方法
with()方法可以传入一个Context,Activity,或者是Fragment,如果为了简单,可以直接传入this。万一如果调用的地方不在Activity或者Fragment中,我们可以获取当前应用程序的ApplicationContext,并传如到with()方法中。
该方法主要是决定了Glide加载图片的生命周期,将Glide加载图片与传入的参数同步生命周期。如果传入的参数是ApplicationContext,那么只有当应用程序被kill时候,图片加载才会停止。
load()方法
load()方法
load()方法主要是加载资源,资源可以是本地资源,或者是网络资源,二进制流。
into()方法
into()方法负责将图片显示到哪