Android中的XML drawable

来源:互联网 发布:31周胎儿发育标准数据 编辑:程序博客网 时间:2024/05/21 17:13

XML drawable用起来方便灵活,并独立于屏幕像素密度,可以直接作为组件的background。

XML drawable包括:shape drawable、state list drawable和layer list drawable。


shape drawable使用方式,类似于下面代码:

//定义于res/drawable中,本例名称为button_beat_box_normal.xml//可以指定形状和背景颜色<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"       android:shape="oval">    <solid android:color="@color/dark_blue"/></shape>
//同样,此例名称为button_beat_box_pressed.xml<?xml version="1.0" encoding="utf-8"?><shape xmlns:android="http://schemas.android.com/apk/res/android"       android:shape="oval">    <solid android:color="@color/red"/></shape>

在上面的基础上,看看state list drawable

//状态不同则使用不同的drawable<?xml version="1.0" encoding="utf-8"?><selector xmlns:android="http://schemas.android.com/apk/res/android">    <item android:drawable="@drawable/button_beat_box_pressed"          android:state_pressed="true"/>    <item android:drawable="@drawable/button_beat_box_normal" /></selector>

使用该drawable的方式类似于:

..........<style name="BeatBoxButton" parent="android:style/Widget.Holo.Button">    <!--drawable直接被用于background-->    <item name="android:background">@drawable/button_beat_box</item></style>..........

layer list drawable的使用方式类似如下,可以将不同item中的shape drawable叠加起来:

<?xml version="1.0" encoding="utf-8"?><layer-list xmlns:android="http://schemas.android.com/apk/res/android">    <item>        <shape android:shape="oval">            <solid android:color="@color/red"/>        </shape>    </item>    <item>        <shape android:shape="oval">            <stroke                android:width="4dp"                android:color="@color/gray"/>        </shape>    </item></layer-list>
0 0