使用layer-list
多shape
组合
今天要做一个两个圆环嵌套的图形,类似于这样
不想写两个
shape
,那就使用layer-list
创建shape的组合吧。本来我是这样写的
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<stroke
android:width="4px"
android:color="@color/white" />
</shape>
</item>
<item>
<shape android:shape="oval">
<stroke
android:width="4px"
android:color="#fb484a" />
</shape>
</item>
</layer-list>
结果是这样的,
这种只显示最后一个形状,也就是说最后创建的
shape
压住了之前的白色圆形,这时候我们需要使用到shape
中的padding
属性
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="oval">
<stroke
android:width="4px"
android:color="@color/white" />
<padding android:bottom="10px" android:left="10px" android:right="10px" android:top="10px"/>
</shape>
</item>
<item>
<shape android:shape="oval">
<stroke
android:width="4px"
android:color="#fb484a" />
</shape>
</item>
</layer-list>
这样在第一个shape
中写了padding
属性之后,以后的shape
就只能在padding
限定的区域活动了
结果