如何以编程方式更改按钮的背景颜色

How to programmatically change the background color of a button

我正在使用 Android Studio 并想使用 colors.xml 文件更改按钮 btn 的背景颜色。这两个对我有用:

btn.setBackgroundColor(getResources().getColor(R.color.colorBlue, null));

btn.setBackgroundColor(ContextCompat.getColor(getApplicationContext(), R.color.colorBlue));

哪个更好?我想更好意味着更快和消耗更少 memory/cpu 使用。

您可以使用接受资源 ID 作为参数的 setBackgroundResource 方法。

这段代码正在改变 AppCompatButton 的颜色

button.getBackground().setColorFilter(ContextCompat.getColor(this, android.R.color.holo_orange_light), PorterDuff.Mode.MULTIPLY);