說明
Andorid的顏色表示法(#AARRGGBB)與HTML的的十六進位的RGB顏色表示法(#RRGGBB)類似,但前面多了兩碼為AA為alpha值來表示透明度,00表示是完全透明;FF表示是完全不透明。
若不想指定透明度也可以直接用#RRGGBB的方式來設定,此時alpha值為FF,如#FF0000(=#FFFF0000)表示紅色、#00FF00(=#FF00FF00)表示綠色、#0000FF(=#FF0000FF)表示藍色、#000000(=#FF000000)表示黑色、#FFFFFF(=#FFFFFFFF)表示白色。
以下以TextView設定背景顏色為紅色的範例:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="#FFFF0000"
android:text="紅色" />
程式寫法為:
textView.setBackgroundColor(0xFFFF0000);
Andorid內建的顏色
Android有一些已經預先定義好的常見顏色,設定在android.graphics.Color的Class中:
常數 |
色碼 |
顏色 |
android.graphics.Color.BLACK | #FF000000 | |
android.graphics.Color.WHITE | #FFFFFFFF | |
android.graphics.Color.RED | #FFFF0000 | |
android.graphics.Color.GREEN | #FF00FF00 | |
android.graphics.Color.BLUE | #FF0000FF | |
android.graphics.Color.GRAY | #FF888888 | |
android.graphics.Color.LTGRAY | #FF444444 | |
android.graphics.Color.DKGRAY | #FFCCCCCC | |
android.graphics.Color.YELLOW | #FFFFFF00 | |
android.graphics.Color.CYAN | #FF00FFFF | |
android.graphics.Color.MAGENTA | #FFFF00FF | |
android.graphics.Color.TRANSPARENT | #00000000 | 透明 |
自訂顏色
Andorid專案開發的過程中,會有許多顏色是需要一再重複使用的,比較好的作法集中定義這些顏色,作法是新增color.xml於res/values/color.xml下,範例如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="black">#FF000000</color>
<color name="white">#FFFFFFFF</color>
<color name="red">#FFFF0000</color>
<color name="green">#FF00FF00</color>
<color name="blue">#FF0000FF</color>
<color name="gray">#FF888888</color>
<color name="ltgray">#FF444444</color>
<color name="dkgray">#FFCCCCCC</color>
<color name="yellow">#FFFFFF00</color>
<color name="cyan">#FF00FFFF</color>
<color name="magenta">#FFFF00FF</color>
<color name="transparent">#00000000</color>
</resources>
上述以TextView的範例可以改為:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/red"
android:text="紅色" />