在Android Studio中,一個控制元件可能會有不同的狀態,例如獲得焦點狀態、被按下狀態等,顏色狀態串列(Color State List)用于控制Android Studio中視圖在不同狀態下顯示的不同顏色,
1 XML檔案
可以使用XML檔案定義顏色狀態串列,
1.1創建color檔案夾
首先在當前專案的res檔案夾中,創建color檔案夾,在res中創建的檔案夾的方法請參考
Android Studio中選項選單的使用方法2-1_hou09tian的博客-CSDN博客
1.2 創建XML檔案
之后,在color檔案夾的右鍵選單中選擇“New->Color resource file”,如圖1所示,創建顏色資源檔案,

圖1 創建顏色資源檔案
之后,在彈出的“New Color Resource File”對話框中,輸入創建的顏色資源檔案的檔案名,如圖2所示,

圖2 “New Color Resource File”對話框
雙擊“yang_button_color.xml”檔案(圖3①),可以看到,創建的顏色資源檔案的根元素是“selector”(圖3②)

圖3 顏色資源檔案
1.3 撰寫XML檔案
在顏色資源檔案的根元素“selector”中,使用“item”子元素來表示不同狀態下的顏色,通過“item”子元素的屬性來表示不同的狀態和顏色,如圖4所示,

圖4 “item”子元素
從圖4中可以看出,顏色資源檔案通過三個“item”子元素定義了三種不同狀態下的顏色,其中android:state_pressed表示控制元件是否處于被選中狀態,圖4①定義了當控制元件處于被選中狀態時,其顏色為紅色;android:state_focused表示控制元件是否獲取焦點,圖4②定義了當控制元件獲取焦點后,其顏色為藍色;圖4③定義了默認顏色是黑色,
2 使用顏色狀態串列
在布局檔案中添加Button控制元件,如圖5所示,

圖5 布局檔案中的Button控制元件
其中,Button控制元件的“textColor”屬性設定為“1.2 創建XML檔案”中創建的顏色狀態串列檔案,
程式運行后,Button如圖6所示,

圖6 Button初始的顏色狀態
當點擊該Button后,其顏色變為紅色,如圖7所示,

圖7 Button點擊后的顏色狀態
相關鏈接1 “item”子元素除了文中提到的“state_pressed”和“state_focused”兩個屬性之外,還有“state_selected”(控制元件是否被選中)、“state_checked”(控制元件是否被勾選)、“state_enable”(控制元件是否處于可以狀態)、“state_activated”(控制元件是否處于活動狀態)和“state_window_focused”(視窗是否獲得焦點)等屬性,
相關鏈接2 系統將使用顏色狀態串列中與控制元件的當前狀態匹配的第一項,因此,如果串列中的第一項不包含上述任何狀態屬性,則每次都會應用該項,因此默認值應始終為最后一項,
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/357145.html
標籤:其他
上一篇:Android 跨程式共享資料
