很多时候,使用shape能够实现的效果,你用一张图片也能够实现,但问题是一张图片无论你怎么压缩,它都不可能比一个xml文件小,因此,为了获得一个高性能的手机App,我们在开发中应该遵循这样一个原则:能够用shape实现的效果尽量不使用图片来实现。
基本属性
corners、solid、gradient、padding、stroke、size
Corners
1 | <corners // 定义圆角 |
Corners标签是用来字义圆角的,其中radius与其它四个并不能共同使用。
android:radius:定义四个角的的圆角半径。
其它四个是逐个字义每个角的圆角半径。
solid
solid用以指定内部填充色
只有一个属性:
1 | <solid android:color="color" /> |
gradient
gradient用以定义渐变色,可以定义两色渐变和三色渐变,及渐变样式,它的属性有下面几个:
1 | <gradient |
使用LevelListDrawable时就要设置为true。设为false时才有渐变效果
有三种渐变类型,分别是:linear(线性渐变)、radial(放射性渐变)、sweep(扫描式渐变)
padding
用来定义内部边距
1 | <padding |
stroke
这是描边属性,可以定义描边的宽度,颜色,虚实线等
1 | <stroke |
size
用来定义图形的大小的
1 | <size |
Shape的属性
rectangle、oval、line、ring
上面我们讲了Shape的子标签的的作用,但Shape本身还没讲,Shape自已是可以定义当前Shape的形状的,比如矩形,还有椭圆形,线形和环形;这些都是通过Shape标签的 shape属性来定义的,Shape标签总共有下面几个属性:
1 | <shape |