在我们的 Picasso 系列收到很多成功的反馈后,我们要开始延伸另外一个令人惊讶的图片加载库系列:Glide。
Glide,就像 Picasso,可以从多个源去加载和显示图片,同时也兼顾缓存和在做图片处理的时候维持一个低内存消耗。它已经在 Google 官方 APP (如 Google 2015开发者大会的应用程序)中使用了,就和 Picasso 一样受欢迎。在这个系列中,我们要探讨 Glide 和 Picasso 的不同和优势。
Glide 系列预览
- 开始!
为何使用 Glide?
有经验的 Android 开发者可以跳过这节,但对于初学者来说,你可能会问自己为什么你想要去用 Glide,而不是自己去实现。
在这个系列,我们将看到 Glide 的很多特性,去看下这篇博客的提纲,并考虑你是否真的要去开发所有这些功能。
添加 Glide
希望我们现在已经说服你去用一个库去处理你的图片加载请求了。如果你想要了解更多 Glide 的情况,这就是为你准备的指南!
首先,添加 Glide 到你的依赖中,写这篇博客的时候,最新的版本是 Glide 是 3.6.1(译者:现在是3.7.0了)
Gradle
和大多数依赖一样,在一个 Gradle 项目中在你的 build.gradle
中添加下面这行代码:
compile 'com.github.bumptech.glide:glide:3.6.1'
Maven
Glide 也支持 Maven 项目:
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>glide</artifactId>
<version>3.6.1</version>
<type>aar</type>
</dependency>
第一次:从一个 URL 中加载图片
-
with(Context context)
- 对于很多 Android API 调用, 是必须的。Glide 在这里也一样 -
load(String imageUrl)
- 这里你可以指定哪个图片应该被加载,同上它会是一个字符串的形式表示一个网络图片的 URL -
into(ImageView targetImageView)
你的图片会显示到对应的 ImageView 中。
理论解释总是苍白的,所以,看一下实际的例子吧:
ImageView targetImageView = (ImageView) findViewById(R.id.imageView);
String internetUrl =
Glide
.with(context)
.load(internetUrl)
.into(targetImageView);
就这样!如果图片的 URL 存在并且你的 ImageView
是可见的,你会在几秒后看到图片。万一图片不存在,Glide 会返回一个错误的回调(我们会在后面讨论这个)。你可能已经相信这三行代码对你而言是有用的,但是这只是冰山一角啦。
展望
在下一篇文章中,除了从一个网络 URL 中加载,我们将开始其他选项来加载图片。具体来说,我们将从 Android 资源,本地文件,和一个 Uri 中加载图片。