美文网首页
Drawable资源之layer-list

Drawable资源之layer-list

作者: 钦_79f7 | 来源:发表于2019-12-19 12:48 被阅读0次

layer-list,就是多个drawable按照顺序层叠在一起显示,顺序规则 按照layer-list 的 item 从上至下的顺序,进行层叠,每个item 就是 一层drawable。

每个item属性的 left top right bottom 是用来控制每层Drawable展示大小与位置的(类似View的margin效果),如果不设置此属性,最上层的Drawable会完全覆盖下层的展示,故 通过控制每个item的外间距,各层组合展示 ,来实现想要的效果。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true">
        <layer-list>
            <item android:bottom="@dimen/selector_btn_radio_solid_margin" android:left="@dimen/selector_btn_radio_solid_margin" android:right="@dimen/selector_btn_radio_solid_margin" android:top="@dimen/selector_btn_radio_solid_margin">
                <shape android:shape="oval">
                    <size android:width="@dimen/selector_btn_radio_size" android:height="@dimen/selector_btn_radio_size" />
                    <solid android:color="@color/main_color" />
                </shape>
            </item>
            <item android:bottom="@dimen/selector_btn_radio_stroke_margin" android:left="@dimen/selector_btn_radio_stroke_margin" android:right="@dimen/selector_btn_radio_stroke_margin" android:top="@dimen/selector_btn_radio_stroke_margin">
                <shape android:shape="oval">
                    <stroke android:width="1dp" android:color="@color/color_333333" />
                    <size android:width="@dimen/selector_btn_radio_size" android:height="@dimen/selector_btn_radio_size" />
                </shape>
            </item>
        </layer-list>
    </item>
    <item>
        <layer-list>
            <item android:bottom="@dimen/selector_btn_radio_solid_margin" android:left="@dimen/selector_btn_radio_solid_margin" android:right="@dimen/selector_btn_radio_solid_margin" android:top="@dimen/selector_btn_radio_solid_margin">
                <shape android:shape="oval">
                    <size android:width="@dimen/selector_btn_radio_size" android:height="@dimen/selector_btn_radio_size" />
                    <solid android:color="@color/line" />
                </shape>
            </item>
            <item android:bottom="@dimen/selector_btn_radio_stroke_margin" android:left="@dimen/selector_btn_radio_stroke_margin" android:right="@dimen/selector_btn_radio_stroke_margin" android:top="@dimen/selector_btn_radio_stroke_margin">
                <shape android:shape="oval">
                    <stroke android:width="1dp" android:color="@color/line" />
                    <size android:width="@dimen/selector_btn_radio_size" android:height="@dimen/selector_btn_radio_size" />
                </shape>
            </item>
        </layer-list>
    </item>
</selector>
<dimen name="selector_btn_radio_stroke_margin">2dp</dimen>
<dimen name="selector_btn_radio_solid_margin">7dp</dimen>
<dimen name="selector_btn_radio_size">10dp</dimen>

样式效果参考 2017-09-01-RadioButton 的效果图

链接

相关文章

网友评论

      本文标题:Drawable资源之layer-list

      本文链接:https://www.haomeiwen.com/subject/myemnctx.html