<shape xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 背景颜色渐变,angle为渐变切面角度,0为左右渐变90为上下渐变 -->
<gradient android:startColor="#fff" android:endColor="#000" android:angle="90"/>
<!-- 背景色,写了背景色之后背景颜色渐变失效,否则渐变色为背景色-->
<solid android:color="#ff66cc22"/>
<!-- 描边 -->
<stroke android:width="4dp" android:color="#ff00ff"/>
<!-- 边角圆角半径 -->
<corners android:radius="10dp"/>
<!-- 周围留白 -->
<padding
android:left="3dp"
android:right="3dp"
android:bottom="3dp"
android:top="3dp"/>
</shape>
1、shape属性:可取的值有rectangle(矩形)、oval(椭圆)、line(直线)、ring(圆环)
当android:shape="ring"时,<shape>节点的后5个属性才有效果
android:innerRadius——指定圆环内圆的半径,比如50dp、100dp之类的。
android:innerRadiusRatio——该值是以比例的形式来指定内圆半径。内圆半径等于该shape的宽除以该值。或者说该值的倒数代表了内圆半径占整个shape宽的比例。默认值是9。当该值等于2的时候,内圆就将占满整个shape,从而我们将看不到圆环。
android:thickness——指定圆环的宽窄,也就是内圆与外圆的距离。
android:thicknessRatio——以比例的形式来指定圆环的宽窄。其算法与innerRadiusRatio相同。
android:useLevel——值为true意味着这是一个levelListDrawable(关于levelListDrawable又是另一个话题了)。当我们要画一个圆环是,应当而且必须将该值设为false,否则会看不到画面。
2、corners属性:只用于矩形(android:shape="rectangle"),用于设置矩形的4个角的圆角半径,生成圆角矩形。
android:radius——同时设置矩形4个角的圆角半径。
android:topLeftRadius——左上角圆角半径
android:topRightRadius——右上角圆角半径
android:bottomLeftRadius——左下角圆角半径
android:bottomRightRadius——右下角圆角半径
这四个单独的设置的值会覆盖android:radius设置的值。
3、padding属性:
此内边距设置显示于该shape之上的内容与该shape的边界的距离。比如如果将该shape设为一个TextView的背景,那么这里的内边距就会影响TextView上文字的位置
4、size属性:
用于矩形时,设置矩形的宽高;
用于椭圆时,设置椭圆外切矩形的宽高,当宽与高相等时,为正圆,否则为椭圆;
用于直线时,宽代表了直线的长度,高没有效果
用于圆环时,宽会影响内圆半径和圆环的宽窄,高没有效果。
当我们将一个shape drawable作为一个View组件的背景或是内容时,通常这个drawable都会被缩放。所以实际显示的时候可能与这里的size设置不相符。
5、solid属性:
solid有“实心的,纯质的”的意思,比如solid gold意为“纯金”,solid color意味“纯色”。
这里这个节点只有一个属性——android:color,用这种颜色来填充该shape内部,如果不设置该shape的边框,就能得到一张纯色的drawable。
6、stroke属性:
stroke有“用笔画出来的轨迹,笔画”的意思,这里指shape的边框。
用于矩形和椭圆时,设置其外边界
用于直线时,呃,直线就是用这个节点来设置的。
用于圆环时,会同时影响内圆和外圆。
android:width——边框线条的宽度,特别地,用于直线时设置直线的粗细。
android:color——设置线条的颜色
android:dashWidth——设置虚线效果里实点的长度
android:dashGap——设置虚线效果里空白点的长度
7、gradient属性:
该节点总共有9个属性,用来设置图形里的颜色渐变效果