# Glide 用法指南
> 说明:由于在最近的项目中用到图片加载框架Glide,但是由于不同的人写的代码有点错综复杂。为了理清Glide的用法,才写了这篇文章。如果有不对的地方,请大家指出,谢谢!
> Glide 是一个图片加载的框架,尤其是大量加载图片,如果在列表中使用,就和它的名字一样纵享丝滑
## 下载或引用方式
```
repositories {
}
dependencies {
}
```
## 使用方式
* 基础用法
```
Glide.with(MainActivity.this).load(mImageUrl).into(mContentImg);
```
* 设置加载尺寸
```
Glide.with(MainActivity.this).load(mImageUrl).override(100,100).into(mContentImg);
```
* 设置加载动画
```
Glide.with(MainActivity.this)
```
* 设置缩放
```
Glide.with(MainActivity.this)
```
* 3种占位符(placeholder、error、fallback)
> 占位符是当请求正在执行时被展示的 Drawable 。当请求成功完成时,占位符会被请求到的资源替换。如果被请求的资源是从内存中加载出来的,那么占位符可能根本不会被显示。如果请求失败并且没有设置 `error Drawable` ,则占位符将被持续展示。类似地,如果请求的url/model为 `null` ,并且 `error Drawable` 和 `fallback` 都没有设置,那么占位符也会继续显示。
```
Glide.with(MainActivity.this).load(mImageUrl).placeholder(R.drawable.icon).into(mContentImg);
```
> `error Drawable` 在请求永久性失败时展示。`error Drawable` 同样也在请求的url/model为 `null` ,且并没有设置 `fallback Drawable` 时展示。
```
Glide.with(MainActivity.this).load(mImageUrl).error(R.drawable.ic_launcher_background).into(mContentImg);
```
> `fallback Drawable` 在请求的url/model为 `null` 时展示。设计 `fallback Drawable` 的主要目的是允许用户指示 `null` 是否为可接受的正常情况。例如,一个 `null` 的个人资料 url 可能暗示这个用户没有设置头像,因此应该使用默认头像。然而,`null` 也可能表明这个元数据根本就是不合法的,或者取不到。 默认情况下Glide将 `null` 作为错误处理,所以可以接受 `null` 的应用应当显式地设置一个 `fallback Drawable` 。
```
Glide.with(MainActivity.this).load(mImageUrl).fallback(R.drawable.ic_launcher_background).into(mContentImg);
```
* 缓存
```
//DiskCacheStrategy.RESULT 缓存转换后的图片 Glide.with(MainActivity.this).load(mImageUrl).diskCacheStrategy(DiskCacheStrategy.RESULT).into(mContentImg);
```
```
Glide.with(MainActivity.this).load(mImageUrl).skipMemoryCache(true).into(mContentImg);
```
```
Glide.get(MainActivity.this).clearDiskCache(); //清理内存缓存
```
###引用文章
> [Glide使用详解(一)](https://blog.csdn.net/shangmingchao/article/details/51125554)
> [Glide v4](https://muyangmin.github.io/glide-docs-cn/doc/transitions.html)


> 说明:由于在最近的项目中用到图片加载框架Glide,但是由于不同的人写的代码有点错综复杂。为了理清Glide的用法,才写了这篇文章。如果有不对的地方,请大家指出,谢谢!
> Glide 是一个图片加载的框架,尤其是大量加载图片,如果在列表中使用,就和它的名字一样纵享丝滑
## 下载或引用方式
```
repositories {
}
dependencies {
}
```
## 使用方式
* 基础用法
```
Glide.with(MainActivity.this).load(mImageUrl).into(mContentImg);
```
* 设置加载尺寸
```
Glide.with(MainActivity.this).load(mImageUrl).override(100,100).into(mContentImg);
```
* 设置加载动画
```
Glide.with(MainActivity.this)
```
* 设置缩放
```
Glide.with(MainActivity.this)
```
* 3种占位符(placeholder、error、fallback)
> 占位符是当请求正在执行时被展示的 Drawable 。当请求成功完成时,占位符会被请求到的资源替换。如果被请求的资源是从内存中加载出来的,那么占位符可能根本不会被显示。如果请求失败并且没有设置 `error Drawable` ,则占位符将被持续展示。类似地,如果请求的url/model为 `null` ,并且 `error Drawable` 和 `fallback` 都没有设置,那么占位符也会继续显示。
```
Glide.with(MainActivity.this).load(mImageUrl).placeholder(R.drawable.icon).into(mContentImg);
```
> `error Drawable` 在请求永久性失败时展示。`error Drawable` 同样也在请求的url/model为 `null` ,且并没有设置 `fallback Drawable` 时展示。
```
Glide.with(MainActivity.this).load(mImageUrl).error(R.drawable.ic_launcher_background).into(mContentImg);
```
> `fallback Drawable` 在请求的url/model为 `null` 时展示。设计 `fallback Drawable` 的主要目的是允许用户指示 `null` 是否为可接受的正常情况。例如,一个 `null` 的个人资料 url 可能暗示这个用户没有设置头像,因此应该使用默认头像。然而,`null` 也可能表明这个元数据根本就是不合法的,或者取不到。 默认情况下Glide将 `null` 作为错误处理,所以可以接受 `null` 的应用应当显式地设置一个 `fallback Drawable` 。
```
Glide.with(MainActivity.this).load(mImageUrl).fallback(R.drawable.ic_launcher_background).into(mContentImg);
```
* 缓存
```
//DiskCacheStrategy.RESULT 缓存转换后的图片 Glide.with(MainActivity.this).load(mImageUrl).diskCacheStrategy(DiskCacheStrategy.RESULT).into(mContentImg);
```
```
Glide.with(MainActivity.this).load(mImageUrl).skipMemoryCache(true).into(mContentImg);
```
```
Glide.get(MainActivity.this).clearDiskCache(); //清理内存缓存
```
###引用文章
> [Glide使用详解(一)](https://blog.csdn.net/shangmingchao/article/details/51125554)
> [Glide v4](https://muyangmin.github.io/glide-docs-cn/doc/transitions.html)


文章来源: Glide 用法指南