🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
**为何使用 Glide?** 有经验的 Android 开发者可以跳过这节,但对于初学者来说,你可能会问自己为什么你想要去用 Glide,而不是自己去实现。 Android 在处理图片工作的时候显得有点娘,因为它会以像素形式加载图片到内存中去,一张照片平均普通的手机摄像头尺寸是 2592x193 像素(5百万像素)将大约会分配 19MB 内存。对于复杂的网络情况,缓存和图片处理,如果你用了一个测试完善开发完成的库,如 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 中加载图片** 就像 Picasso, Glide 库是使用[流接口(fluent interface)](https://en.wikipedia.org/wiki/Fluent_interface)。对一个完整的功能请求,Glide 建造者要求最少有三个参数。 * `with(Context context)` - 对于很多 Android API 调用,[Context](https://developer.android.com/reference/android/content/Context.html?hl=zh-cn) 是必须的。Glide 在这里也一样 * `load(String imageUrl)` - 这里你可以指定哪个图片应该被加载,同上它会是一个字符串的形式表示一个网络图片的 URL * `into(ImageView targetImageView)` 你的图片会显示到对应的 ImageView 中。 理论解释总是苍白的,所以,看一下实际的例子吧: ~~~ ImageView targetImageView = (ImageView) findViewById(R.id.imageView); String internetUrl = "http://i.imgur.com/DvpvklR.png"; Glide .with(context) .load(internetUrl) .into(targetImageView); ~~~ 就这样!如果图片的 URL 存在并且你的 `ImageView`是可见的,你会在几秒后看到图片。万一图片不存在,Glide 会返回一个错误的回调(我们会在后面讨论这个)。你可能已经相信这三行代码对你而言是有用的,但是这只是冰山一角啦。 **展望** 在下一篇文章中,除了从一个网络 URL 中加载,我们将开始其他选项来加载图片。具体来说,我们将从 Android 资源,本地文件,和一个 Uri 中加载图片。