Drawable selector使用实例

http://qiita.com/suzukihr/items/f52e3ed9a196afa463f7

Drawable Resource 文档

http://developer.android.com/guide/topics/resources/drawable-resource.html

图片

screen.png

xml

サンプルは、各素材を単一ファイルで完結させるため、カラーコード等はベタ書きしてます。
内容は、上記ドキュメントを見れば簡単に理解できると思います。

绿色标签

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid android:color="#009688" />
    <corners android:radius="8dp" /></shape>

sample.xml


オレンジのラベル

sample.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android" >

    <solid android:color="#00000000" />
    <corners android:radius="8dp" />
    <stroke android:width="1dp" android:color="#ff9800" /></shape>
青色圆形按钮

sample.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="#aa00bcd4" />
        </shape>
    </item>

    <item android:state_focused="true">
        <shape android:shape="oval">
            <solid android:color="#aa00bcd4" />
        </shape>
    </item>

    <item>
        <shape android:shape="oval">
            <solid android:color="#00bcd4" />
        </shape>
    </item></selector>


青色のボタン

sample.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape>
            <solid android:color="#aa00bcd4" />
            <corners android:radius="8dp" />
        </shape>
    </item>

    <item android:state_focused="true">
        <shape>
            <solid android:color="#aa00bcd4" />
            <corners android:radius="8dp" />
        </shape>
    </item>

    <item>
        <shape>
            <solid android:color="#00bcd4" />
            <corners android:radius="8dp" />
        </shape>
    </item></selector>


青色白色按钮

sample.xml


<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape>
            <solid android:color="#e3e3e3" />
            <corners android:radius="8dp" />
            <stroke android:width="1dp" android:color="#00bcd4" />
        </shape>
    </item>

    <item android:state_focused="true">
        <shape>
            <solid android:color="#e3e3e3" />
            <corners android:radius="8dp" />
            <stroke android:width="1dp" android:color="#00bcd4" />
        </shape>
    </item>

    <item>
        <shape>
            <solid android:color="#00000000" />
            <corners android:radius="8dp" />
            <stroke android:width="1dp" android:color="#00bcd4" />
        </shape>
    </item></selector>

青色阴影按钮

sample.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <layer-list>
            <item android:top="3dp">
                <shape>
                    <solid android:color="#00bcd4" />
                    <corners android:radius="8dp" />
                </shape>
            </item>
        </layer-list>
    </item>

    <item android:state_focused="true">
        <layer-list>
            <item android:top="3dp">
                <shape>
                    <solid android:color="#00bcd4" />
                    <corners android:radius="8dp" />
                </shape>
            </item>
        </layer-list>
    </item>

    <item>
        <layer-list>
            <item>
                <shape>
                    <solid android:color="#dddddd" />
                    <corners android:radius="8dp"/>
                </shape>
            </item>
            <item android:bottom="3dp">
                <shape>
                    <solid android:color="#00bcd4" />
                    <corners android:radius="8dp"/>
                </shape>
            </item>
        </layer-list>
    </item></selector>


转载于:https://my.oschina.net/u/2317656/blog/469728

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来给你一个Selector复杂例子,实现点击button后显示不一样的样式。 首先,我们需要定义两种不同的样式,一种是未选中状态下的样式,另一种是选中状态下的样式。我们可以使用XML文件来定义这两种样式。比如,我们创建一个名为`button_bg.xml`的XML文件,内容如下: ```xml <!-- 未选中状态下的样式 --> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:drawable="@drawable/bg_normal" android:state_pressed="false" /> <item android:drawable="@drawable/bg_pressed" android:state_pressed="true" /> </selector> ``` 在这个XML文件中,我们使用了`selector`元素来定义两个`item`元素,分别表示未选中状态下和选中状态下的样式。每个`item`元素中都定义了一个`android:drawable`属性,表示该状态下应该显示的样式。我们在未选中状态下使用`bg_normal`来表示普通状态下的样式,在选中状态下使用`bg_pressed`来表示按下状态下的样式。 接下来,我们在我们的布局文件中使用这个XML文件来设置button的背景。比如: ```xml <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/button_bg" android:text="Click me!" /> ``` 这个button的背景就会根据它的选中状态来显示不同的样式了。例如,当用户点击button时,它的背景就会变成`bg_pressed`,当用户松开button时,它的背景就会变成`bg_normal`。 最后,我们需要在代码中设置button的选中状态。我们可以在button的点击事件中通过代码来实现。比如: ```java Button button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // 切换button的选中状态 button.setSelected(!button.isSelected()); } }); ``` 在这个代码中,我们使用`setSelected()`方法来切换button的选中状态。当button被选中时,它的背景就会变成`bg_pressed`,反之,则为`bg_normal`。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值