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
    10
    Drawable Icon = xxx;

    RequestOptions options = new RequestOptions()
    .error(Icon)
    .placeholder(Icon);

    Glide.with(context)
    .load("")
    .apply(options)
    .into(imageView);

    备注

  • placeholder 在Glide 4.x版本中,移入了 RequestOptions 对象中.