Glide ,像 Picasso 一样,可以从多种来源上加载图片,同时在操作图片的时候taking care of caching和保持很低的内存使用。它已经被应用在谷歌的apps里(像 Google I/O 2015),像 Picasso 一样受欢迎。在这个系列里面我们将展示它和Picasso之间的不同和优势。
Glide 系列概述
1.入门
2.高级加载
3.ListAdapter (ListView, GridView)
4.Placeholders & Fade Animations
5.Image Resizing & Scaling
6.Displaying Gifs & Videos
7.Caching Basics
8.Request Priorities
9.Thumbnails
10.Callbacks: SimpleTarget and ViewTarget for Custom View Classes
11.Loading Images into Notifications and AppWidgets
12.Exceptions: Debugging and Error Handling
13.Custom Transformations
14.Custom Animations with animate()
15.Integrating Networking Stacks
16.Customize Glide with Modules
17.Glide Module Example: Accepting Self-Signed HTTPS Certificates
18.Glide Module Example: Customize Caching
19.Glide Module Example: Optimizing By Loading Images In Custom Sizes
20.Dynamically Use Model Loaders
21.How to Rotate Images
22.Series Roundup
为什么使用Glide
有经验的Android开发人员可以跳过这部分,但是对于初学者,你可能会问自己为什么你需要使用 Glide代替自己的实现。
Android is quite the diva when working with images, since it'll load images into the memory pixel by pixel. A single photo of an average phone camera with the dimensions of 2592x1936 pixels (5 megapixels) will allocate around 19 MB of memory. If you add the complexity of network requests on spotty wireless connections, caching and image manipulations, you will safe yourself a lot of time & headache, if you use a well-tested and developed library like Glide.
在这个系列中,我们将会看到许多Glide的特性。
Just take a peek at the blog post outline and think if you really want to develop all of these features yourself.
或其他图片加载的库,像 Picasso, ION, fresco等。
添加Glide到你的工程中
希望我已经说服你使用Glide来处理你的图片加载。如果你想看看 Glide,this is the guide for you!
第一件事情,添加Glide到你的项目依赖中。写这篇文章的时候,最新版本是3.7.0.
Gradle
===
和多数的依赖一样,添加如下依赖在你的 build.gradle里面。
compile 'com.github.bumptech.glide:glide:3.7.0'
Maven
虽然我们已经把项目使用Gradle构建, Glide同样支持Maven项目结构。
<dependency>
<groupId>com.github.bumptech.glide</groupId> <artifactId>glide</artifactId>
<version>3.7.0</version>
<type>aar</type>
</dependency>
首先:从URL加载一张图片
和Picasso一样,Glide同样是用方法链的方式。Glide构建一个完整的请求需要最少三个参数:
- with(Context context) - Context
- load(String imageUrl) -图片加载的地址,通常是一个图片的网站
- into(ImageView targetImageView) -目标图片所展示的容器
下面是一个简单使用的例子:
ImageView targetImageView = (ImageView) findViewById(R.id.imageView);
String internetUrl = "http://i.imgur.com/DvpvklR.png";
Glide
.with(context)
.load(internetUrl)
.into(targetImageView);
如果图片网址是存在的,几秒之后你就会看到它显示在ImageView中。如果它是不存在的,Glide会有一个发生异常的回调,这个我们后面再看。你可能已经尝试了上面的例子,这只是Glide功能的冰山一角。
展望
下一个章节,我们将通过加载其他来源的图像。具体来说,我们将会从Android 资源,本地文件或Uri。
.