mButton.setBackgroundColor(Color.GREEN) ;
我用那个方法来改变按钮被点击时的颜色。在MainActivity和onCreate():mButton = (Button) findViewById( R.id.button_count);
中,按钮被初始化为私有我试着将它转换为视图,但仍然不起作用。也许,它可以帮助你-当我在属性窗格中设置任何颜色时背景属性,按钮的颜色不会改变。
我想知道如何在java代码中改变背景颜色或我的程序出了什么问题。谢谢你
试试这一行:
mButton.setBackgroundColor(getResources().getColor(R.color.Green));
注意:在color.xml中定义的绿色
button.setcolorfilter(Color)
在API 29中已弃用。
button.setBackgroundColor(color)
与按钮样式混淆。
所以这里有一个新的方法来做到这一点使用BlendModeColorFilter()
: https://developer.android.com/reference/android/graphics/BlendModeColorFilter
参见上面的文档链接。
fun setButtonColor(btn: Button, color: Int) {
if (Build.VERSION.SDK_INT >= 29)
btn.background.colorFilter = BlendModeColorFilter(color, BlendMode.MULTIPLY)
else
btn.background.setColorFilter(color, PorterDuff.Mode.MULTIPLY)
}
根据新的api,颜色过滤器工作良好。