2011-12-30 99 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