形状图形的定义文件以shape元素为根节点。根节点下定义了6个节点:corners(圆角)、gradient(渐变)、padding(间隔)、size(尺寸)、solid(填充)、stroke(描边),各节点的属性值主要是长宽、半径、角度以及颜色。
1.shape
-shape是XML文件的根结点,用来描述该形状图形是哪种几何图形。shape节点有一个同名的属性shape。该属性取值如下:
形状类型 | 说明 |
rectangle | 矩形。默认值 |
oval | 椭圆。此时corners节点失效 |
line | 直线。此时必须设置Stroke节点,不然会报错 |
ring | 圆环 |
2.corners
-corners是shape的下级节点,用来描述4个圆角的规格定义。若无corners节点,则表示没有圆角。下面是corners节点的常用属性。
-
bottomLeftRadius:像素类型,左下圆角的半径。
-
bottomRightRadius:像素类型,右下圆角的半径。
-
topLeftRadius:像素类型,左上圆角的半径。
-
topRightRadius:像素类型,右上圆角的半径。
-
radius:像素类型,圆角半径(若有上面4个圆角半径的定义,则不需要radius定义)
3.gradient
-gradient是shape的下级节点,用来描述形状内部的颜色渐变定义。若无gradient节点,则表示没有渐变效果。下面是gradient节点的常用属性。
-
angle:整型,渐变的起始角度。为0时表示时钟的9点位置,值增大表示往逆时针方向旋转。
-
type:字符串类型,渐变类型。渐变类型取值见下表:
渐变类型 | 说明 |
linear | 线行渐变,默认值 |
radial | 放射渐变,起始颜色就是圆心颜色 |
sweep | 滚动渐变,即一个线段以某个端点为圆心做360度旋转 |
-
centerX:浮点型,圆心的X坐标。当android:type="linear"时不可用。
-
centerY:浮点型,圆心的Y坐标。当android:type="linear"时不可用。
-
gradientRadius:整型,渐变的半径。当android:type="radial"时才需要设置该属性。
-
centerColor:颜色类型,渐变的中间颜色。
-
startColor:颜色类型,渐变的起始颜色。
-
endColor:颜色类型,渐变的终止颜色。
-
useLevel:布尔类型,设置为true无渐变色、false有渐变色。
4.padding
-padding是shape的下级节点,用来描述形状图形与周围视图的间隔大小。若无padding节点,则表示四周不设间隔。下面是padding节点的常用属性。
-
bottom:像素类型,与下边的间隔。
-
left:像素类型,与左边的间隔。
-
right:像素类型,与右边的间隔。
-
top:像素类型,与上边的间隔。
5.size
-size是shape的下级节点,用来描述形状图形的尺寸大小(宽度和高度)。若无size节点,则表示宽高自适应。下面是size节点的常用属性。
-
height:像素类型,图形高度。
-
width:像素类型,图形宽度。
6.solid
-solid是shape的下级节点,用来描述形状图形内部的填充色彩。若无solid节点,则表示无填充颜色。下面是solid节点的常用属性。
-
color:颜色类型,内部填充的颜色。
7.stroke
-stroke是shape的下级节点,用来描述形状图形四周边线的规格定义。若无stroke节点,则表示不存在描边。下面是stroke节点的常用属性。
-
color:颜色类型,描边的颜色。
-
dashGap:像素类型,每段虚线之间的间隔。
-
dashWidth:像素类型,每段虚线的宽度。
-
width:像素类型,描边的厚度。若dashGap和dashWidth有一个值为0,则描边为实线。