Google Analytics

2013年8月30日 星期五

Android-自定樣式(style)

說明

Andorid專案開發的過程中,會有許多樣式是一再重複使用的,老是一個一個UI元件去設定文字背景的顏色、字型、大小等,是一件毫無效率又容易出錯的事情,與HTML的CSS相似,Andorid也容許使用者預先制定樣式(style),作法是新增或修改styles.xml於res/values/styles.xml下,範例如下:
<?xml version="1.0" encoding="utf-8"?>

<resources>
    <style name="textViewStyle1">
        <item name="android:textColor">#FF0000FF</item>
        <item name="android:background">#FFFF0000</item>
    </style>    
</resources>

若有自訂顏色於res/values/color.xml下時,亦可在styles.xml直接使用,範例如下:
<?xml version="1.0" encoding="utf-8"?>

    <style name="textViewStyle1">
        <item name="android:textColor">@color/blue</item>
        <item name="android:background">@color/red</item>
    </style>    

以下為以TextView設定樣式的範例:
<TextView
        style="@style/textViewStyle1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="藍底紅色" />


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