轉(zhuǎn)自: https://developer.android.google.cn/guide/topics/resources/color-list-resource
顏色狀態(tài)列表資源
ColorStateList
是一個您可以在 XML 中定義的對象,您可以將其作為顏色來應(yīng)用,但它實(shí)際上會更改顏色,具體取決于其應(yīng)用到的 View
對象的狀態(tài)。例如,Button
微件可以處于多種不同狀態(tài)中的一種(按下、聚焦或既不按下也不聚焦),而使用顏色狀態(tài)列表,您可以為每種狀態(tài)提供不同的顏色。
創(chuàng)新互聯(lián)是一家專業(yè)提供
江門企業(yè)網(wǎng)站建設(shè),專注與
網(wǎng)站制作、成都網(wǎng)站建設(shè)、
HTML5、小程序制作等業(yè)務(wù)。10年已為江門眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)絡(luò)公司優(yōu)惠進(jìn)行中。
您可以在 XML 文件中描述狀態(tài)列表。每種顏色都在單個 <selector>
元素內(nèi)的 <item>
元素中定義。每個 <item>
使用不同的屬性描述其應(yīng)在什么狀態(tài)下使用。
在每次狀態(tài)更改期間,系統(tǒng)將從上到下遍歷狀態(tài)列表,并且將使用與當(dāng)前狀態(tài)匹配的第一項(xiàng)。系統(tǒng)的選擇并非基于“最佳匹配”,而僅僅是基于符合狀態(tài)的最低標(biāo)準(zhǔn)的第一項(xiàng)。
注意:如果要提供靜態(tài)顏色資源,請使用簡單的顏色值。
- 文件位置:
res/color/filename.xml
該文件名將用作資源 ID。- 編譯后的資源數(shù)據(jù)類型:
- 指向
ColorStateList
的資源指針。 - 資源引用:
- 在 Java 中:
R.color.filename
在 XML 中:@[package:]color/filename
- 語法:
- <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:color="hex_color"
android:state_pressed=["true" | "false"]
android:state_focused=["true" | "false"]
android:state_selected=["true" | "false"]
android:state_checkable=["true" | "false"]
android:state_checked=["true" | "false"]
android:state_enabled=["true" | "false"]
android:state_window_focused=["true" | "false"] />
</selector>
- 元素:
<selector>
- 必需。該元素必須是根元素。包含一個或多個
<item>
元素。屬性:
xmlns:android
- 字符串。必需。定義 XML 命名空間,該命名空間必須為
"http://schemas.android.com/apk/res/android"
。
<item>
- 定義在某些狀態(tài)下使用的顏色,狀態(tài)通過其屬性來描述。必須是
<selector>
元素的子元素。屬性:
android:color
- 十六進(jìn)制顏色。必需。顏色通過 RGB 值和可選的 Alpha 通道指定。
該值始終以井號 (#) 字符開頭,后跟以下某種格式的“透明度、紅、綠、藍(lán)”(Alpha-Red-Green-Blue) 信息:
- #RGB
- #ARGB
- #RRGGBB
- #AARRGGBB
android:state_pressed
- 布爾值。如果此項(xiàng)應(yīng)在按下對象時(例如輕觸/點(diǎn)按了按鈕時)使用,則為“true”;如果此項(xiàng)應(yīng)在默認(rèn)的非按下狀態(tài)下使用,則為“false”。
android:state_focused
- 布爾值。如果此項(xiàng)應(yīng)在聚焦對象時(例如使用軌跡球/方向鍵突出顯示按鈕時)使用,則為“true”;如果此項(xiàng)應(yīng)在默認(rèn)的非聚焦?fàn)顟B(tài)下使用,則為“false”。
android:state_selected
- 布爾值。如果此項(xiàng)應(yīng)在選擇對象時(例如打開標(biāo)簽頁時)使用,則為“true”;如果此項(xiàng)應(yīng)在未選擇對象時使用,則為“false”。
android:state_checkable
- 布爾值。如果此項(xiàng)應(yīng)在對象可勾選時使用,則為“true”;如果此項(xiàng)應(yīng)在對象不可勾選時使用,則為“false”。(僅適用于對象可在可勾選和不可勾選的微件之間轉(zhuǎn)換的情況。)
android:state_checked
- 布爾值。如果此項(xiàng)應(yīng)在勾選對象時使用,則為“true”;如果應(yīng)在取消勾選對象時使用,則為“false”。
android:state_enabled
- 布爾值。如果此項(xiàng)應(yīng)在啟用對象(能夠接收輕觸/點(diǎn)按事件)時使用,則為“true”;如果應(yīng)在停用對象時使用,則為“false”。
android:state_window_focused
- 布爾值。如果此項(xiàng)應(yīng)在應(yīng)用窗口具有焦點(diǎn)(應(yīng)用位于前臺)時使用,則為“true”;如果此項(xiàng)應(yīng)在應(yīng)用窗口沒有焦點(diǎn)時(例如通知欄下拉或出現(xiàn)一個對話框時)使用,則為“false”。
注意:請注意,系統(tǒng)將應(yīng)用狀態(tài)列表中與對象的當(dāng)前狀態(tài)匹配的第一項(xiàng)。因此,如果列表中的第一項(xiàng)不包含上述任何狀態(tài)屬性,則每次都會應(yīng)用該項(xiàng),因此默認(rèn)值應(yīng)始終為最后一項(xiàng),如以下示例所示。
- 示例:
- 保存于
res/color/button_text.xml
的 XML 文件:<?xml version="1.0" encoding="utf-8"?>
<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>
此布局 XML 會將顏色列表應(yīng)用到 View:
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/button_text"
android:textColor="@color/button_text" />
- 另請參閱:
新聞標(biāo)題:Android復(fù)習(xí)(二)應(yīng)用資源-->顏色狀態(tài)列表-創(chuàng)新互聯(lián)
當(dāng)前地址:http://www.rwnh.cn/article28/ccjojp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供面包屑導(dǎo)航、網(wǎng)站排名、企業(yè)網(wǎng)站制作、做網(wǎng)站、品牌網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源:
創(chuàng)新互聯(lián)