Android API Guides---Color State List Resource

来源:互联网 发布:更新软件源 编辑:程序博客网 时间:2024/06/05 15:57
颜色状态列表资源
也可以看看
颜色(简单值)
一个ColorStateList是一个对象,你可以在XML定义,你可以申请一个颜色,但实际上会改变颜色,这取决于其所应用的视图对象的状态。例如,一个按钮控件可以在几种不同的状态(压,突出重点,或两者都不是),并用颜色状态列表中的一个存在,您可以提供每个状态中不同的颜色。
你可以这样描述XML文件的状态列表。每种颜色有一个<选择>元素中的<item>元素定义。每个<item>使用不同的属性来描述,其中它应该使用的状态。
在每个状态变化,所述状态列表遍历从上到下和相匹配的当前状态将用于​​-选择不是基于所述的第一项“最佳匹配”,而仅仅是指满足最低标准的第一项州。
注意:如果您想提供一个静态的颜色资源,使用简单的颜色值。
文件位置:
RES /彩色/ filename.xml中
文件名将用作资源ID。
编译的资源数据类型:
资源指针ColorStateList。
资源引用:
在Java:R.color.filename
在XML:@ [包:]彩色/文件名

句法:

<?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>
ELEMENTS:
<selector>
需要。这必须是根元素。包含一个或多个<item>元素。
属性:


xmlns:android
串。需要。定义了XML命名空间,它必须是“http://schemas.android.com/apk/res/android”。
<item>
定义颜色在某些国家使用,正如它的属性描述。必须用<选择>元素的子元素。
属性:

android:color
Hexadeximal颜色。需要。颜色与RGB值和可选的alpha通道指定。
该值总是以磅(#)字符开头,然后接着在下面的格式之一阿尔法 - 红 - 绿 - 蓝信息:


#RGB
#ARGB
#RRGGBB
#AARRGGBB
android:state_pressed
布尔。 “真”,如果当按下对象应使用此产品的(当按钮被触摸诸如/点击); “假”,如果这个项目应该在默认使用,非按下状态。
android:state_focused
布尔。 “真”,如果当物体被聚焦(当按钮被使用轨迹球/ D-垫高亮如)应使用这个产品“假”,如果这个项目应该在默认使用,非聚焦状态。
android:state_selected
布尔。 “真”如果在选择对象时(如打开一个标签)应该使用这个产品, “假”如果在没有选择的对象应使用此项目。
android:state_checkable
布尔。 “真”,如果当对象是可勾选应该使用这个产品, “假”,如果当对象不是可勾选此项目应该被使用。 (只有有用的,如果该对象可以可检查的和非可检查的小部件之间转换。)
android:state_checked
布尔。 “真”,如果当对象被选中应该使用这个产品, “假”,如果它应当对象是使用未检查。
android:state_enabled
布尔。 “真”,如果当物体被启用应使用此产品的(能够接收触摸/点击事件); “假”,如果当物体被禁用它应该被使用。
android:state_window_focused
布尔。 “真”,如果当应用程序窗口已关注这个项目应该使用(应用程序是在前台),“假”,如果这个项目时,应使用应用程序窗口没有焦点(例如,如果通知栏是拉下来,或者出现一个对话框)。
注意:请记住在状态列表相匹配的对象的当前状态中的第一项将被应用。因此,如果在该列表中的第一项包含任何状态的上述属性,那么它会在每个时间,这就是为什么预设值应始终是最后(如下面的示例所示)施加。


例:
在保存RES /彩色/ 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将颜色列表应用到一个视图:

<Button    android:layout_width="fill_parent"    android:layout_height="wrap_content"    android:text="@string/button_text"    android:textColor="@color/button_text" />

0 0
原创粉丝点击