前往
大廳
主題

【Android筆記】Resource - 顏色狀態列表(Color State List)

LF(小魚) | 2021-02-19 13:59:22 | 巴幣 0 | 人氣 186


一、介紹:
用以設定元件在某些特定情況下(例如:按下或啟用...)的顏色,此類會放在res/color/底下用XML來撰寫的檔案
既然是XML檔,勢必會有規定的元素(Element)及屬性(Attribute):
元素:
<selector>*
  必須是根元素,包含一個或多個<item>元素
  屬性:
  xmlns:android(String)*
    定義XML名稱空間,必為"http://schemas.android.com/apk/res/android"

<item>
  定義特定狀態下的顏色,必須是<selector>的子元素
  屬性:
  android:color(Hex Color)*
    始終以"#"開頭,值必須為3,4個1位16進位值或3,4個2位16進位值(Alpha-Red-Green-Blue)
    格式:#RGB, #ARGB, #RRGGBB, #AARRGGBB
    例如:#29F, #C29F, #E46F84, #3C5EA8BA
  android:state_pressed(boolean)
    對象按下與否時應用
  android:state_focused(boolean)
    對象聚焦與否時應用
  android:state_selected(boolean)
    對象選擇與否時應用
  android:state_checkable(boolean)
    對象可被勾選與否時應用
  android:state_checked(boolean)
    對象勾選與否時應用
  android:state_enabled(boolean)
    對象啟用與否時應用
  android:state_window_focused(boolean)
    對象應用程式聚焦與否時應用
  注意:如果不包含以上可選屬性,該<item>元素應始終位於最後,因為從第一位開始尋找,如果可以被應用則不會再繼續往下尋找,而不包含以上可選屬性即代表默認值

範例(來自Android官方文件):
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:color="#ffff0000"/> <!-- pressed -->
   <item android:state_focused="true"
          android:color="#ff0000ff"/> <!-- focused -->
    <item android:color="#ff000000"/> <!-- default -->
</selector>


創作回應

更多創作