Android中的Selector

来源:互联网 发布:金山数据恢复会员共享 编辑:程序博客网 时间:2024/06/05 03:03
Color State List Resource


1. ColorSelector, 放在color资源目录


<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:color="#RGB或#ARGB, #RRGGBB #AARRGGBB"
        android:state_pressed=["true" | "false"]                                   // 按钮按下时
        android:state_focused=["true" | "false"]                                   // 获得焦点时(高亮)
        android:state_selected=["true" | "false"]                                  // 被选中时
        android:state_checkable=["true" | "false"]                               // checkable
        android:state_checked=["true" | "false"]                                  // checked
        android:state_enabled=["true" | "false"]                                  // 激活,可使用时
        android:state_window_focused=["true" | "false"] />              // 窗口获得焦点时
</selector>


例子:
注意item里越普遍的要越放后面
<?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>


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




2. Drawable有同样的selector,放在drawable资源目录


<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"
    android:constantSize=["true" | "false"]
    android:dither=["true" | "false"]
    android:variablePadding=["true" | "false"] >
    <item
        android:drawable="@[package:]drawable/drawable_resource"
        android:state_pressed=["true" | "false"]
        android:state_focused=["true" | "false"]
        android:state_hovered=["true" | "false"]
        android:state_selected=["true" | "false"]
        android:state_checkable=["true" | "false"]
        android:state_checked=["true" | "false"]
        android:state_enabled=["true" | "false"]
        android:state_activated=["true" | "false"]
        android:state_window_focused=["true" | "false"] />
</selector>


例子:


<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/button_pressed" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/button_focused" /> <!-- focused -->
    <item android:state_hovered="true"
          android:drawable="@drawable/button_focused" /> <!-- hovered -->
    <item android:drawable="@drawable/button_normal" /> <!-- default -->
</selector>




<Button
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:background="@drawable/button" />




又如对listView
<?xml version="1.0" encoding="utf-8" ?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- 默认时的背景图片-->
    <item android:drawable="@drawable/pic1" />


<!-- 没有焦点时的背景图片 -->
    <item android:state_window_focused="false"
                android:drawable="@drawable/pic1" />


<!-- 非触摸模式下获得焦点并单击时的背景图片 -->
    <item android:state_focused="true"
                android:state_pressed="true"
                android:drawable= "@drawable/pic2" />


<!-- 触摸模式下单击时的背景图片-->
    <item android:state_focused="false"
                android:state_pressed="true"
                android:drawable="@drawable/pic3" />


<!--选中时的图片背景-->
    <item android:state_selected="true"
                android:drawable="@drawable/pic4" />


<!--获得焦点时的图片背景-->
    <item android:state_focused="true"
                android:drawable="@drawable/pic5" />
</selector>




在listview中配置android:listSelector="@drawable/xxx"
或者在listview的item中添加属性android:background="@drawable/xxx"





0 0
原创粉丝点击