Android復習(二)應用資源 --> 顏色狀態(tài)列表
轉(zhuǎn)自: https://developer.android.google.cn/guide/topics/resources/color-list-resource
顏色狀態(tài)列表資源
ColorStateList 是一個您可以在 XML 中定義的對象,您可以將其作為顏色來應用,但它實際上會更改顏色,具體取決于其應用到的 View 對象的狀態(tài)。例如,Button 微件可以處于多種不同狀態(tài)中的一種(按下、聚焦或既不按下也不聚焦),而使用顏色狀態(tài)列表,您可以為每種狀態(tài)提供不同的顏色。
您可以在 XML 文件中描述狀態(tài)列表。每種顏色都在單個 <selector> 元素內(nèi)的 <item> 元素中定義。每個 <item> 使用不同的屬性描述其應在什么狀態(tài)下使用。
在每次狀態(tài)更改期間,系統(tǒng)將從上到下遍歷狀態(tài)列表,并且將使用與當前狀態(tài)匹配的第一項。系統(tǒng)的選擇并非基于“最佳匹配”,而僅僅是基于符合狀態(tài)的最低標準的第一項。
注意:如果要提供靜態(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>
- 元素:
- 示例:
- 保存于
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 會將顏色列表應用到 View:
<Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/button_text" android:textColor="@color/button_text" />
- 另請參閱:

浙公網(wǎng)安備 33010602011771號