你如何从Android包中的资源ID获取Drawable对象?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (1530)

我需要得到一个可绘制的对象来显示图像按钮。有没有办法使用下面的代码的包中获取对象?

mContext.getResources().getDrawable(drawableId)
提问于
用户回答回答于
Drawable d = getResources().getDrawable(android.R.drawable.ic_dialog_email);
ImageView image = (ImageView)findViewById(R.id.image);
image.setImageDrawable(d);
用户回答回答于

您应该使用支持库中的以下代码:

ContextCompat.getDrawable(context, android.R.drawable.ic_dialog_email)

使用这种方法相当于调用:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    return resources.getDrawable(id, context.getTheme());
} else {
    return resources.getDrawable(id);
}

扫码关注云+社区

领取腾讯云代金券