Android:getDrawable和其他没有版本检查的资源?

时间:2018-05-26 06:48:23

标签: java android

我必须经常在我的代码中进行这些检查,并且我想知道是否有一种干净的方式来获取资源而无需编写if语句来检查版本。

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) 
{
    imageView.setImageDrawable(getDrawable(R.drawable.ic_circled_v));
}
else
{
    imageView.setImageDrawable(getResources().getDrawable(R.drawable.ic_circled_v));
}

2 个答案:

答案 0 :(得分:4)

这是您获取可绘制资源并保持向后兼容性的方法。

这是您要在“活动”中使用的代码:

imageView.setImageDrawable(ContextCompat.getDrawable(this, R.drawable.icon_heart_fill_red));

其中 icon_heart_fill_red 是您的drawable的名称。

答案 1 :(得分:1)

使用注释,@ requireApi或@targetApi