2013-08-21 39 views
0

我使用4x6网格按钮创建了一个Android应用程序。这些按钮应该都有不同的背景颜色。Android自定义彩色按钮,避免冗余代码

我可以通过创建24个自定义形状(如drawable\red_botton.xml,drawable\green_botton.xml,...)并将它们设置为android:background属性来实现此目的。

但是这会产生大量冗余的xml代码。有没有更好的办法?

+1

定义它没有颜色和编程设置颜色:http://stackoverflow.com/questions/2173936/how-to-set-background-color-of-a-view - 通过'.setColorFilter' http:// stackoverflow.com/questions/11036835/how-to-apply-a-color-filter-to-a-view-with-all-children – zapl

+0

最后,我决定将背景属性直接设置为一种颜色,并使用简单的结果彩色方块作为按钮。无论如何,感谢提示'setColorFilter'! – Euro

回答

1

在创建资源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> 

然后用下面的代码按钮对象

btn.setBackgroundColor(getResources().getColor(R.color.red)); 

上或者你可以在你的布局文件中设置。