shape 就是形状,通过它的属性设置来画出一些图形用于控件背景.selector等.

不多说直接进入正题:

一、父节点shape属性值
shape
|--android:dither
|--android:shape
|--rectangle      矩阵(默认)
|--oval 椭圆
|--line 直线(必须有stroke来设置线的宽度)
|--ring 环
注:以下属性只有shape为ring(环)的时候才会使用
|--android:innerRadiusRatio
尺寸。 内环的半径。一个尺寸值(dip等等)或者一个尺寸资源。
|--android:innerRadius
这个值表示内部环的比例,例如,如果android:innerRadiusRatio = "5",那么内部的半径等于环的宽度除以5。                 这个值会被android:innerRadius重写。 默认值是9。
|--android:thicknessRatio
尺寸。环的厚度,是一个尺寸值或尺寸的资源。
|--android:thickness
厚度的比例。例如,如果android:thicknessRatio= "2",然后厚度等于环的宽度除以2。这个值是被               android:innerRadius重写, 默认值是3。
|--android:useLevel
如果用在 LevelListDrawable里,那么就是true。如果通常不出现则为false。

二、父节点shape中一共有以下六个子节点分别是:
1)corners    圆角
2)gradient   渐变色
3)solid        填充
4)stroke     描边
5)padding  间隔
6)size        大小

三、每个子节点包含的属性值

1)corners  圆角
    1)|--android:radius                       半径(会被下面每个特定的圆角半径值所影响)
    2)|--android:topLeftRadius           左上半径
    3)|--android:topRightRadius        右上半径
    4)|--android:bottomLeftRadius     左下半径
    5)|--android:bottomRightRadius  右下半径

注:只有shape为rectangle的时候才使用
PS:
1.如果该圆角四个圆角半径都相同的话只需写1)的属性即可否则就用2),3),4),5)来进行设置。
2.如果分别设置上下左右的半径,再设置1)将无效。

2)gradient 渐变色
    |--android:startColor 起始颜色
    |--android:centerColor 中心颜色
    |--android:endColor 结尾颜色
    |--android:useLevel 如果要使用LevelListDrawable对象,就要设置为true。设置为true无渐变。false有渐变色
    |--android:angle 渐变角度(当angle=0时,渐变色是从左向右。逆时针方向转,当angle=90时为从下往上。以                                         此类推,但angle必须为45的整数倍)
    |--android:type 渐变类型
    |--linear 线性渐变(默认)
    |--radial 放射性渐变(以startColor为中心)
    |--sweep 扫描性渐变
    |--android:centerX 渐变中心X点坐标的相对位置(从0到1.0)
    |--android:centerY 渐变中心Y点坐标的相对位置(从0到1.0)
    |--android:gradientRadius 渐变色半径

3)solid    填充
|--color 填充的颜色

4)stroke   描边(当父节点shape为line时必须设置该子节点)
    |-- android:width 边线的宽度(线的粗细程度)
    |-- android:color 边线的颜色
    以下两个属性是把边线设置成虚线
    |-- android:dashWidth 虚线的宽度
    |-- android:dashGap 虚线的间距
注:不论android:dashWidth和android:dashGap哪个设置成0dp边线都会是实线
    
5)padding  间隔
    |--android:left
    |--android:top
    |--android:right
    |--android:bottom
    PS:没有什么可说的

6)size     大小
    |--android:width  宽度
    |--android:height   高度
    PS: 
    1.默认情况下,这个shape会缩放到与他所在容器大小成正比。
2.当你在一个ImageView中使用这个shape,你可以使用 android:scaleType="center"来限制这种缩放。


四、使用方法

具体代码就不上传了大家看一下图就明白使用方法了。

Android shape画带边框矩形 android中shape_图形

Android shape画带边框矩形 android中shape_Android shape画带边框矩形_02