在android中使用shape资源来定义一个形状. 可以减小安装包大小, 在 Eclipse 中创建 xml 的时候, 选 drawable, 放在 drawable 目录中. 如下图所示
![1005355-20161001162236828-1182385632.png](https://i-blog.csdnimg.cn/blog_migrate/74a556adc3fe455461bec97332bfc229.png)
![1005355-20161001162237813-2074410914.png](https://i-blog.csdnimg.cn/blog_migrate/cdb99f39473ee8e83aec1cdeb812ebc9.png)
下面有一个矩形的例子
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<!-- 圆角弧度 -->
<corners android:radius="30dip" />
<!-- 渐变色 -->
<gradient
android:startColor="#ffff00"
android:endColor="#00ffff00"/>
<!-- 固定颜色, 不可以和gradient一起使用 -->
<!-- <solid android:color="#ffffd300" /> -->
<!-- 内边距 -->
<padding
android:left="20dip"
android:top="20dip" />
<!-- 边框 -->
<stroke
android:dashGap="20dip"
android:dashWidth="10dip"
android:width="3dip"
android:color="#0000ff" />
<!-- 一般不指定size, 让它自适应控件大小 -->
<!-- <size /> -->
</shape>
注意:
1. shape 元素的 android:shape 只有四个值: rectangle, line, oval(椭圆), ring(环)
2. corners 这个元素只对 rectangle 有效.
3. oval, 如果宽和高指定的一样, 就是正圆
以下来自网上:
shape的属性:每个状态(item)都对应着一个效果,shape是用来定义形状的,以下为shape的一些常见属性:
1. size, 大小, 只有 width, height 两个属性.
2、solid:实心,就是填充的意思
android:color指定填充的颜色
3、gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍。当angle=0时,渐变色是从左向
右。 然后逆时针方向转,当angle=90时为从下往上。另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,
android:type="radial",径向渐变需要指定半径android:gradientRadius="50",也可一指定二者的综合,扫描渐变 android: type="sweep"
4、stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp"
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。
5、corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
android:topRightRadius="20dp" 右上角
android:bottomLeftRadius="20dp" 右下角
android:topLeftRadius="1dp" 左上角
android:bottomRightRadius="0dp" 左下角
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角
6、panding:内边矩
android:color指定填充的颜色
3、gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍。当angle=0时,渐变色是从左向
右。 然后逆时针方向转,当angle=90时为从下往上。另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,
android:type="radial",径向渐变需要指定半径android:gradientRadius="50",也可一指定二者的综合,扫描渐变 android: type="sweep"
4、stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp"
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。
5、corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
android:topRightRadius="20dp" 右上角
android:bottomLeftRadius="20dp" 右下角
android:topLeftRadius="1dp" 左上角
android:bottomRightRadius="0dp" 左下角
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角
6、panding:内边矩