Android随手记—Glide加载Drawable对象
编程环境
- Android Studio 3.0
问题
Glide是一个通用的图片缓存框架,但是在MyPrivacy显示appIcon时,传入 一个Drawable对象,提示类型不匹配.
(注意: 这里是直接传入Drawable对象,不是经过 R.xx 引用 !)
过程
查阅资料后,确认Glide不支持直接加载传入的Drawable对象,转换为bitDrawable类型也不可.
解决思路来自
https://github.com/bumptech/glide/issues/588
不支持直接加载,但Glide的.error(Icon)错误时显示 .placeholder(Icon)占位符,支持Drawable对象
解决
- 不再直接加载 .load 传入空字符串, 通过 .placeholder 简洁加载.
- demo
1
2
3
4
5
6
7
8
9
10Drawable Icon = xxx;
RequestOptions options = new RequestOptions()
.error(Icon)
.placeholder(Icon);
Glide.with(context)
.load("")
.apply(options)
.into(imageView);
备注
- placeholder 在Glide 4.x版本中,移入了 RequestOptions 对象中.