一、目录

二、功能
1、图片加载
(1)图片异步加载
ImageView targetImageView =
(ImageView) findViewById(R.id.ImageView);String imageUrl =
"http://218.192.170.132/1.jpg";
//url即图片的下载地址,targetImageView即图片最终要展示的地方。Glide.with(this).load(imageUrl).into(targetImageView); (2)设置加载尺寸
Glide.with(this).load(Url).override(800,800).into(targetImageView); (3)设置加载中及加载失败的图片
api里面对placeholder()、error()函数中有多态实现。
Glide.with(this).load(imageUrl).placeholder(R.drawable.place_icon).error(R.drawable.error_icon).into(targetImageView); (4)设置加载动画Glide.with(this).load(imageUrl).animate(R.anim.item_alpha_in).into(imageView); (5)设置要加载的内容
项目中有很多需要先下载图片然后再做一些合成的功能,比如项目中出现的图文混排。
2、多样式的媒体加载

3、关于缓存
(1)设置磁盘缓存策略
Glide.with(this).load(imageUrl).diskCacheStrategy(DiskCacheStrategy.ALL).into(imageView);
缓存参数说明:
DiskCacheStrategy.NONE:不缓存任何图片,即禁用磁盘缓存
DiskCacheStrategy.ALL :缓存原始图片 & 转换后的图片(默认)
DiskCacheStrategy.SOURCE:只缓存原始图片(原来的全分辨率的图像,即不缓存转换后的图片)
DiskCacheStrategy.RESULT:只缓存转换后的图片(即最终的图像:降低分辨率后 / 或者转换后
,不缓存原始图片)
(2)设置跳过缓存Glide.with(this).load(imageUrl).skipMemoryCache(true).into(imageView);这意味着 Glide 将不会把这张图片放到内存缓存中去。注意:这只是会影响内存缓存!Glide
将会仍然利用磁盘缓存来避免重复的网络请求。
(3)清理缓存
Glide.get(this).clearDiskCache();
//清理磁盘缓存 需要在子线程中执行
Glide.get(this).clearMemory(); //清理内存缓存 可以在UI主线程中进行
4、其他设置(1)生命周期集成.with(Context
context)// 绑定Context
.with(Activity activity);//
绑定Activity
.with(FragmentActivity activity);//
绑定FragmentActivity
.with(Fragment fragment);// 绑定Fragment
注意:A:传入的context类型影响到Glide加载图片的优化程度B:Glide可以监视Activity的生命周期,在Activity销毁的时候自动取消等待中的请求。但是如果你使用Application
context,你就失去了这种优化效果。
(2)设置下载优先级Glide.with(this).load(imageUrl).priority(Priority.NORMAL).into(imageView);
三:Demo实例
步骤:1、在gradle添加依赖compile
'com.github.bumptech.glide:glide:3.7.0'
2、添加网络权限uses-permission
android:name="android.permission.INTERNET" 3、应用
Glide.with(this).load(imageUrl).into(targetImageView);
四:优缺点
1、优点
(1)多样化媒体加载
Glide 不仅是一个图片缓存,它支持 Gif、WebP、缩略图,甚至是 Video。
(2)生命周期集成
通过设置绑定生命周期,我们可以更加高效的使用Glide提供的方式进行绑定,这样可以更好的让加载图片的请求的生命周期动态管理起来。
(3)高效的缓存策略
A. 支持Memory和Disk图片缓存
B. Picasso 只会缓存原始尺寸的图片,而 Glide 缓存的是多种规格,也就意味着 Glide 会根据你
ImageView 的大小来缓存相应大小的图片尺寸(比如你 ImageView 大小是200200,原图是
400400 ,而使用 Glide 就会缓存 200200 规格的图,而 Picasso 只会缓存
400400 规格的。这个改进就会导致 Glide 比 Picasso
加载的速度要快,毕竟少了每次裁剪重新渲染的过程,非常灵活 & 加载速度快)
C. 内存开销小
默认的 Bitmap 格式是 RGB_565 格式,而 Picasso 默认的是 ARGB_8888 格式,这个内存开销要小一半。(
Android关于图片内存计算,共有四种,分别是:
ALPHA_8:每个像素占用1byte内存
ARGB_4444:每个像素占用2byte内存
ARGB_8888:每个像素占用4byte内存(默认,色彩最细腻=显示质量最高=占用的内存也最大)
RGB_565:每个像素占用2byte内存(8bit = 1byte)
举例说明:一个32位的PNG=ARGB_8888=1204x1024,那么占用空间是:1024x1024x(32/8) =
4,194,304kb=4M左右
在解析图片的时候,为了避免oom和节省内存,最好使用ARGB_4444模式(节省一半的内存空间)
)
2、缺点
(1)使用方法复杂
由于Glide其功能强大,所以使用的方法非常多,其源码也相对的复杂。
(2)jar包比较大
1535

被折叠的 条评论
为什么被折叠?



