图片加载框架Glide

以前一直用Picasso,听说这个库比Picasso要快,Google官方发布的App还用这玩意.那就必须了解一下了

github: https://github.com/bumptech/glide
使用前先添加依赖

1
2
3
compile 'com.github.bumptech.glide:glide:3.7.0'

加载一个图片

1
2
3
4
5
6
Glide
.with(this)
.load("http://img4.imgtn.bdimg.com/it/u=1142469417,341639617&fm=21&gp=0.jpg")
.into(imageView);

没了,这不是和Picasso一样吗

但是当我在一个布局中同时使用Glide和Picasso发现,Glide加载图片的速度要优于Picasso.同时Glide的with()方法可以传入Activity和Fragment,就意味着可以和Activity生命周期联动,处于Pause状态时停止加载.加载图片的Bitmap格式为RGB_565,Picasso是ARGB8888,Glide加载的图片质量不如Picasso,但要小很多.

此外Glide的其他方法有:

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
.fitCenter() //图片完整展现,图片居中绘制
.centerCrop() //图片去掉两头,留中间,充满控件
.placeholder(R.mipmap.ic_launcher) //占位图片
.asBitmap() //无论资源是不是gif动画,都作为Bitmap对待。如果是gif动画会停在第一帧
.asGif() //如果是gif动画需要此句,如果不是将失败
.priority(Priority.HIGH) //加载图片的优先级
.skipMemoryCache(true) //禁止内存缓存
.diskCacheStrategy(DiskCacheStrategy.NONE) //禁止磁盘缓存
.thumbnail(0.1f) //缩略图 0.1倍
.error(R.mipmap.ic_launcher) //失败时显示的图片
// 必须在UI线程中调用
Glide.get(this).clearMemory(); //清理内存缓存
// 必须在后台线程中调用,建议同时clearMemory()
Glide.get(this).clearDiskCache(); //清除磁盘缓存

Glide还支持对图片进行裁剪、模糊、滤镜等处理

可以使用图片处理库 https://github.com/wasabeef/glide-transformations

列举部分方法

1
2
3
4
5
6
.bitmapTransform(new BlurTransformation(this)) //模糊处理
.bitmapTransform(new CropCircleTransformation(this)) //圆形裁剪
.bitmapTransform(new RoundedCornersTransformation(this,30,0, RoundedCornersTransformation.CornerType.ALL)) //圆角处理
.bitmapTransform(new GrayscaleTransformation(this)) //灰度处理

更多方法和详细介绍可以参考下其他博客,列举一些

Glide使用详解: http://blog.csdn.net/shangmingchao/article/details/51125554/
Android 平滑图片加载和缓存库 Glide 使用详解: http://www.codeceo.com/article/android-glide-usage.html
Google推荐的图片加载库Glide介绍: http://blog.csdn.net/theone10211024/article/details/45557859