比较API 21 x API 23中的资源

时间:2017-09-20 00:38:17

标签: android android-5.0-lollipop android-resources

我的应用程序在API 23及更高版本中运行良好,但是当我在API 21中运行它时似乎存在一个错误。我已将其缩小到这段代码:

if (myButton.getBackground().getConstantState() == ResourcesCompat.getDrawable(getResources(), R.drawable.myDrawable, null).getConstantState())
{...}

在API 21中,它总是返回false(即使它不应该),所以我猜其中一种方法在API 21中不起作用。

有什么想法吗?是否有其他方式(与API 21及更高版本兼容)来检查按钮的背景是否分配了特定的可绘制内容?

ps:我的minsdk是21,但Lint没有给我任何警告。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用ContextCompat:

ContextCompat.getDrawable(yourContext, R.drawable.myDrawable).getConstantState();