Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android自定义彩色按钮,避免冗余代码_Android_Xml_Button_Layout_Background - Fatal编程技术网

Android自定义彩色按钮,避免冗余代码

Android自定义彩色按钮,避免冗余代码,android,xml,button,layout,background,Android,Xml,Button,Layout,Background,我创建了一个带有4x6网格按钮的Android应用程序。这些按钮都应有不同的背景色 我可以通过创建24个自定义形状来实现这一点,如drawable\red\u botton.xml,drawable\green\u botton.xml。。。并将它们设置为android:background属性 但这将产生大量冗余的xml代码。有更好的方法吗?在res/values文件夹中创建colors.xml文件: <?xml version="1.0" encoding="utf-8"?> &

我创建了一个带有4x6网格按钮的Android应用程序。这些按钮都应有不同的背景色

我可以通过创建24个自定义形状来实现这一点,如
drawable\red\u botton.xml
drawable\green\u botton.xml
。。。并将它们设置为
android:background
属性


但这将产生大量冗余的xml代码。有更好的方法吗?

在res/values文件夹中创建colors.xml文件:

<?xml version="1.0" encoding="utf-8"?>
<resources>
 <color name="black">#000</color>
 <color name="blue">#00f</color>
 <color name="red">#f00</color>
</resources>

或者您可以在布局文件中进行设置。

不使用颜色进行定义,并通过编程方式设置颜色:-通过
。setColorFilter
最后,我决定直接将背景属性设置为颜色,并将生成的简单彩色方块用作按钮。无论如何,感谢您提示设置颜色过滤器!
btn.setBackgroundColor(getResources().getColor(R.color.red));