Glide 是一个android平台上的快速和高效的开源的多媒体资源管理库, 提供 多媒体文件的压缩,内存和磁盘缓存, 资源池的接口
Glide 支持获取,解压展示视频, 图像和GIFs, Glide有一个可弹性的api可以让开发者自定义网络栈技术, 默认使用HttpUrlConnection , 你可以替换为 Google’s Volley或者 OkHttp
Glide 开始的目的是提供一个快速和平滑展示图片列表, 但是Glide对你需要拉取, resize 和展示远程的图片这些场景都是很管用的.
下载
可以在github上下载 release page.
或者使用Gradle
1
2
3
4
5
6
7
8
|
repositories {
mavenCentral()
}
dependencies {
compile
'com.github.bumptech.glide:glide:3.3.+'
compile
'com.android.support:support-v4:19.1.0'
}
|
Maven
1
2
3
4
5
6
7
8
9
10
11
|
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>glide</artifactId>
<version>
3.3
.
1
</version>
<type>aar</type>
</dependency>
<dependency>
<groupId>com.google.android</groupId>
<artifactId>support-v4</artifactId>
<version>r7</version>
</dependency>
|
使用
参考这里 GitHub wiki 和这里 javadocs.
简单的例子
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
// For a simple view:
@Override
public
void
onCreate(Bundle savedInstanceState) {
...
ImageView imageView = (ImageView) findViewById(R.id.my_image_view);
Glide.
with
(
this
).load(
"http://goo.gl/h8qOq7"
).into(imageView);
}
// For a list:
@Override
public
View getView(
int
position, View recycled, ViewGroup container) {
final
ImageView myImageView;
if
(recycled ==
null
) {
myImageView = (ImageView) inflater.inflate(R.layout.my_image_view,
container,
false
);
}
else
{
myImageView = (ImageView) recycled;
}
String
url = myUrls.
get
(position);
Glide.
with
(myFragment)
.load(url)
.centerCrop()
.placeholder(R.drawable.loading_spinner)
.crossFade()
.into(myImageView);
return
myImageView;
}
|
Volley
如果你想使用Volley
Gradle
1
2
3
4
|
dependencies {
compile
'com.github.bumptech.glide:volley-integration:1.0.+'
compile
'com.mcxiaoke.volley:library:1.0.+'
}
|
Maven:
1
2
3
4
5
6
7
8
9
10
11
12
|
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>volley-integration</artifactId>
<version>
1.0
.
1
</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.mcxiaoke.volley</groupId>
<artifactId>library</artifactId>
<version>
1.0
.
5
</version>
<type>aar</type>
</dependency>
|
然后在你的Activity或者程序中,注册Volley为基本模块
1
2
3
4
5
|
public
void
onCreate() {
Glide.
get
(
this
).register(GlideUrl.
class
, InputStream.
class
,
new
VolleyUrlLoader.Factory(yourRequestQueue));
...
}
|
OkHttp
Gradle:
1
2
3
4
|
dependencies {
compile
'com.github.bumptech.glide:okhttp-integration:1.0.+'
compile
'com.squareup.okhttp:okhttp:2.0.+'
}
|
Maven:
1
2
3
4
5
6
7
8
9
10
11
12
|
<dependency>
<groupId>com.github.bumptech.glide</groupId>
<artifactId>okhttp-integration</artifactId>
<version>
1.0
.
1
</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>
2.0
.
0
</version>
<type>jar</type>
</dependency>
|
然后在你的Activity或者程序中,注册Volley为基本模块
1
2
3
4
5
|
public
void
onCreate() {
Glide.
get
(
this
).register(GlideUrl.
class
, InputStream.
class
,
new
OkHttpUrlLoader.Factory(yourOkHttpClient));
...
}
|
github地址 https://github.com/bumptech/glide