shape标签是一种构建简单图案的xml文件,在减小APK包体积和不同屏幕适配上有着很好的效果。文件放在res/drawable文件夹下。使用时可以将某个空间的background属性设置为引用shape资源文件,从而实现需要的效果。
基本属性
1、corners
定义控件背景圆角,其中redius和其他四个属性不能共同使用。
<corners //定义圆角
android:radius="dimension" //全部的圆角半径
android:topLeftRadius="dimension" //左上角的圆角半径
android:topRightRadius="dimension" //右上角的圆角半径
android:bottomLeftRadius="dimension" //左下角的圆角半径
android:bottomRightRadius="dimension" /> //右下角的圆角半径
2、solid
用以指定内部填充色,只有一个color属性。
<solid android:color="color" />
3、gradient
用以定义渐变色,可以定义两色渐变和三色渐变。
其中type属性表示渐变方式,linear(线性渐变),radial(放射渐变),sweep(扫描式渐变)。
| 属性名 | 属性类型 | 属性含义 | 拥有者 | 备注 |
|---|---|---|---|---|
| type | enum | 渐变类型 | 公有 | |
| startColor | color | 渐变开始点的颜色 | 公有 | |
| centerColor | color | 渐变中间点的颜色 | 公有 | |
| endColor | color | 渐变结束点的颜色 | 公有 | |
| angle | integer | 渐变角度 | linear(线性渐变) | 必须为45的倍数,0为从左到右,90为从上到下 |
| centerX/Y | float | 渐变中心X/Y的相当位置 | radial(放射渐变) | 范围为0~1 |
| gradientRadius | integer | 渐变半径 | radial(放射渐变) |
3、stroke
描边属性,可以定义描边的宽度,颜色,虚实线等。
<stroke
android:width="dimension"//描边的宽度
android:color="color" //描边的颜色
// 以下两个属性设置虚线
android:dashWidth="dimension" //虚线的宽度,值为0时是实线
android:dashGap="dimension" /> //虚线的间隔
shape的属性
| 属性名 | 属性类型 | 属性含义 | 备注 |
|---|---|---|---|
| shape | enum | 形状 | rectangle(矩形)、oval(椭圆形)、line(线性形状)、ring(环形) |
| innerRadius | dimension | 内环的半径 | |
| innerRadiusRatio | float | 以环的宽度比率来表示内环的半径 | |
| thickness | demension | 环的厚度 | |
| thicknessRatio | float | 以环的宽度比率来表示环的厚度 |









网友评论