自定义drawable(selector、shape)

<?xml version="1.0" encoding="utf-8"?>
<selector
    xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- 状态项,以下不同的状态定义不同的形状 -->
    <item android:state_pressed="true" >
        <shape>
            <!-- 注意!!!!!!!!solid和gradient不能同时出现在同一个shape中,如果同时存在,则以后一个属性为准。是不是因为后者覆盖了前者呢?!!!!!!!!!! -->
            <!-- 填充颜色 -->
            <solid android:color="#00ff00"/>
            <!-- 渐变属性 ,type有不同的类型,和相应的属性,比如圆形就有半径的属性-->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:type="linear" />
            <!-- 描边属性,当不定义dash属性时则表示边是实线;当dashGap=0时也是实线 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc"
                android:dashWidth="5dp"
                android:dashGap="10dp" />
            <!-- 圆角,可以分别定义4个角-->
            <corners
                android:radius="2dp" />
            <!-- 间隔 -->
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
            <!-- 设置大小 -->
            <size
                android:width="100dp"
                android:height="50dp"
                />
        </shape>
    </item>

    <!--
  android:state_pressed 是否按下,如一个按钮触摸或者点击。
  android:state_focused 是否取得焦点,比如用户选择了一个文本框。
  android:state_hovered 光标是否悬停,通常与focused state相同,它是4.0的新特性
  android:state_selected 被选中,它与focus state并不完全一样,如一个list view 被选中的时候,它里面的各个子组件可能通过方向键,被选中了。
  android:state_checkable 组件是否能被check。如:RadioButton是可以被check的。
  android:state_checked 被checked了,如:一个RadioButton可以被check了。
  android:state_enabled 能够接受触摸或者点击事件
  android:state_activated 被激活(这个麻烦举个例子,不是特明白)
  android:state_window_focused 应用程序是否在前台,当有通知栏被拉下来或者一个对话框弹出的时候应用程序就不在前台了  
  注意:如果有多个item,那么程序将自动从上到下进行匹配,最先匹配的将得到应用。(不是通过最佳匹配)
   如果一个item没有任何的状态说明,那么它将可以被任何一个状态匹配。
     -->
    <item android:state_focused="true" > </item>

<!-- 用layer-list实现多层重叠-->

<item android:state_selected="true">
        <layer-list>
            <!-- 第一层和相应边距 -->
            <item android:left="10dp">
                <!-- 设置形状 -->
                <shape >
                    <gradient
                        android:startColor="#000fff"
                        ....
                        />
                    <corners android:radius="4dp"/>
                    ....
                </shape>
            </item>
            <!-- 第二层 -->
            <item>
                .....
            </item>
        </layer-list>

    </item>
    <!-- 默认 -->
    <item>  </item>
</selector>





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值