1. Shape的形状有四种
android:shape="rectangle|oval|ring|line"
指定形状
<shape
android:shape="rectangle" >
<solid android:color="#ffff8c00" />
</shape>
<shape
android:shape="oval">
<solid android:color="#ffffc800"/>
</shape
<shape
android:shape="ring"
android:thickness="5dp"
android:useLevel="false">
<solid android:color="#ffff8800" />
</shape>
<shape
android:shape="line" >
<stroke
android:width="5dp"
android:color="#ffff8c00" />
</shape>
效果如下
2. solid
retangle
、oval
和ring
都适用solid
来填充颜色。
android:color
用来指定颜色。
3. stroke
android:width
指定线的宽度。android:color
指定线的颜色。android:dashWidth
指定虚线的宽度。android:dashGap
指定虚线的间隔。
示例代码
<shape
android:shape="rectangle" >
<solid android:color="#ffff8c00" />
<stroke
android:width="2dp"
android:color="#ff000000" />
</shape>
<shape
android:shape="rectangle" >
<stroke
android:width="2dp"
android:dashWidth="10dp"
android:dashGap="5dp"
android:color="#ffff8c00" />
</shape>
效果如下
4. corners
android:radius
指定四个角的半径android:topLeftRadius
指定左上角的半径android:topRightRadius
指定右上角的半径android:bottomLeftRadius
指定左下角的半径android:bottomRightRadius
指定右下角的半径
示例代码
<corners
android:radius="10dp" />
<corners
android:topLeftRadius="10dp"
android:topRightRadius="10dp" />
效果如下
5. gradient
android:startColor
指定开始颜色android:endColor
指定结束颜色android:type="linear | radial | sweep"
指定颜色渐变的方式
示例代码
效果如下<gradient android:startColor="#ffff8c00" android:endColor="#ffffffff" android:type="linear" /> <gradient android:startColor="#ffff8c00" android:endColor="#ffffffff" android:type="radial" android:gradientRadius="60"/> <gradient android:startColor="#ffff8c00" android:endColor="#ffffffff" android:type="sweep" />
android:gradientRadius
指定radius
的半径android:angle
指定方向,0代表从左往右,90代表从下到上,180代表从有往左,angle
必须是45的倍数
效果如下
gradient同样可以用于其他形状
6. ring的专用属性
android:innerRadius
指定内环的半径android:innerRadiusRatio
环的宽度比率表示内环的半径,5时为占比0.2android:thickness
指定环的厚度android:thicknessRatio
环的宽度比率来表示环的厚度,5时为占比0.2android:useLevel
为false
示例代码
<shape
android:shape="ring"
android:thickness="5dp"
android:useLevel="false"/>
<shape
android:shape="ring"
android:thickness="10dp"
android:innerRadius="20dp"
android:useLevel="false"/>
<shape
android:shape="ring"
android:thickness="10dp"
android:innerRadius="15dp"
android:useLevel="false" />
<shape
android:shape="ring"
android:thicknessRatio="5"
android:innerRadius="15dp"
android:useLevel="false"/>
效果如下