2011-12-30 117 views
13

Android编程让我疯狂。用于GUI开发的XML或可编程方式正在为代码编写合适的老式狗早餐 - 这里有些东西,还有一些东西。Android系统颜色常量

我目前的失望是试图保留所有的XML,我想设置TextView的背景颜色与Button的背景颜色相同,而不必指定确切的颜色代码。我想使用系统常量,如java.awt.SystemColor.control,但是用XML指定。

有没有这样做,而不必重新指定一堆东西?我正在寻找一个解决方案,如:android:background="{Insert constant here}"

回答

17

你应该有所谓的colors.xml RES /值的文件,它应该是这样的:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <color name="white">#FFFFFF</color> 
    <color name="grey">#7A7A7A</color> 
    <color name="background">#0044AA</color> 
    <color name="bluelight">#449DEF</color> 
    <color name="bluedark">#2F6699</color> 
    <color name="greenlight">#70C656</color> 
    <color name="greendark">#53933F</color> 
    <color name="orangelight">#F3AE1B</color> 
    <color name="orangedark">#BB6008</color> 
    <color name="black">#000000</color> 
</resources> 

然后,你可以调用XML的颜色是这样的:

android:background="@color/greenlight" 
+3

但我不希望指定颜色。我想指定一个系统风格。 – zam664 2011-12-30 14:18:42

+1

这通常是实现它的首选方法,因为没有很多系统定义的颜色,但是您可以使用android:background =“@ android:color/white”。你可以在这里找到一个完整的列表:http://developer.android.com/reference/android/R.color.html – 2011-12-30 14:22:21

+0

我有一个颜色常量,例如:17170449,我需要转换成十六进制十进制代码。可能吗?在此先感谢@MattHarris – 2014-06-10 13:32:22

20

您可以使用诸如“@ color/white”或android系统常量“@android:color/holo_red_light”之类的内容。或者,如果你想要更多的控制,你可以随时以可抽拉定义一个共同的背景和背景设置为“@绘制/ mydrawable”

为Android可用的资源列表:颜色在这里(如background_dark):http://developer.android.com/reference/android/R.color.html

+1

这是我与Android的问题。我不想自己重新定义一切。我想在系统上使用标准。我不在乎那些标准是什么,我只是想要一个类似的用户的外观和感觉。 – zam664 2011-12-30 14:21:54

+0

这就是为什么你应该使用android:color/...有很多现有的预设不是颜色特定的,并且会根据制造商而改变。更新回答链接 – 2011-12-30 14:25:02

+1

只是抬起头来,你的例子是不正确的,没有“@android:color/red” – 2014-03-28 19:07:46

1

使用这样的:android:background="#FF00FF"

0

你不需要使用xml文件来创建一个常量XML,

它可以帮助你: Java constants file

+0

我想用XML而不是Java来做。我可以通过Java编程获得颜色,但其目的是在GUI设计中使用XML,并将它们都放在一个位置。我不想让我的一半图形用户界面在XML中,一半用Java。 – zam664 2011-12-30 19:21:51