Google Analytics

2013年8月23日 星期五

Android-設定文字或背景顏色

說明

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="紅色" />

2 則留言: