在开发中,我们经常会去用到Shape去定义各种各样的形状,很多时候是作为背景使用的 . 这里就作为TextView的背景来逐个展示shape的一些属性 .
- solid 一般是填充颜色
使用方式 :<solid android:color="#00ffff"/>
使用效果 : 如图一所示的填充颜色 - stroke 描边
使用方式 :
<stroke android:width="1dp" android:color="#ff00ff"/>
描边也可以是虚线 , 其两个属性如下:android:dashGap="3dp" android:dashWidth="5dp"
使用效果 : 如图一 , 紫色描边 , 且边的宽度为1dp
- corners 圆角
使用方式 :<corners android:radius="5dp"/>
android:radius为角的弧度,值越大角越圆。
如果四个角弧度一样 , 可以这样设置 :
android:Radius=“20dp” 设置四个角的半径
我们还可以把四个角设定成不同的角度 , 例如:
android:topLeftRadius=“10dp” 设置左上角的半径
android:topRightRadius=“20dp” 设置右上角的半径
android:bottomLeftRadius=“30dp” 设置右下角的半径
android:bottomRightRadius=“40dp” 设置左下角的半径
使用效果 : 如图一 , 四个弧度不同
- gradient 渐变
android:startColor和android:endColor分别为起始和结束颜色,
android:angle是渐变角度,必须为45的整数倍。
另外渐变默认的模式为android:type=“linear”,即线性渐变,
可以指定渐变为径向渐变,android:type=“radial”,径向渐变需要指定半径android:gradientRadius=“50”。
angle值对应的位置如图:
- padding 内容相对边界的距离
可以设置上下左右四个方向的间隔
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="10dp"/>
<solid android:color="#00ffff"/>
<stroke
android:width="1dp"
android:color="#ff00ff"/>
</shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners
android:radius="10dp"/>
<solid android:color="#00ffff"/>
<stroke
android:width="1dp"
android:color="#ff00ff"/>
<padding
android:left="15dp"
android:right="15dp"/>
</shape>
两种方式的效果如图所示: