Android layer-list與shape的使用
阿新 • • 發佈:2018-12-15
建立一個xml檔案
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- layer-list中的item是按照順序從下往上疊加的,即先定義的item在下面,後面的依次往上面疊放
-->
<!-- 這裡定義一個下面帶圓角,上面不帶圓角的矩形,邊框顏色為@color/line_color -->
<item>
<shape>
<corners
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp" />
<stroke
android:width="1px"
android:color="#11ff0000" />
</shape>
</item>
<!--
這裡定義一個下面帶圓角,上面不帶圓角的矩形,背景為白色
這裡設定了android:right="1px" android:left="1px" android:bottom="1px"屬性
android:right="1px"表示該item右邊往裡面縮了1px
android:left="1px"表示該item左邊往裡面縮了1px
android:bottom="1px"表示該item下面往裡面縮了1px
這樣,左、右、下都比原來縮小了1px,這縮小出來的鄭剛是上面一個item的邊框的左、右、下邊框
而top沒有縮小,所以覆蓋了上面一個item的邊框的上邊框。
所以這個item疊加上面一個item之後的效果就是一個只含左、右、下灰色邊框,下面帶圓角,上面不帶圓角的白色背景矩形
-->
<item
android:bottom="1px"
android:left="1px"
android:right="1px">
<shape>
<corners
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp" />
<solid android:color="#ffffff" />
</shape>
</item>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- layer-list中的item是按照順序從下往上疊加的,即先定義的item在下面,後面的依次往上面疊放
-->
<!-- 這裡定義一個下面帶圓角,上面不帶圓角的矩形,邊框顏色為@color/line_color -->
<item>
<shape>
<corners
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp" />
<stroke
android:width="1px"
android:color="#11ff0000" />
</shape>
</item>
<!--
這裡定義一個下面帶圓角,上面不帶圓角的矩形,背景為白色
這裡設定了android:right="1px" android:left="1px" android:bottom="1px"屬性
android:right="1px"表示該item右邊往裡面縮了1px
android:left="1px"表示該item左邊往裡面縮了1px
android:bottom="1px"表示該item下面往裡面縮了1px
這樣,左、右、下都比原來縮小了1px,這縮小出來的鄭剛是上面一個item的邊框的左、右、下邊框
而top沒有縮小,所以覆蓋了上面一個item的邊框的上邊框。
所以這個item疊加上面一個item之後的效果就是一個只含左、右、下灰色邊框,下面帶圓角,上面不帶圓角的白色背景矩形
-->
<item
android:bottom="1px"
android:left="1px"
android:right="1px">
<shape>
<corners
android:bottomLeftRadius="10dp"
android:bottomRightRadius="10dp" />
<solid android:color="#ffffff" />
</shape>
</item>
</layer-list>
詳細請參見http://www.cnblogs.com/liuling/p/2015-9-23-1.html