Android中处理控件的各种形状可以用到Shape,ApiDemos中有相关的例子,在com.example.android.apis.graphics中的ShapeDrawable1类中有很详细的介绍和例子。使用xml的方法也能达到同样的效果,而且更加方便。如下面的代码所示:

 

  1. XML/HTML 代码复制内容到剪贴板  
  2.       
  3. <shape>          
  4.     <!-- 实心 -->          
  5.     <solid android:color="#ff9d77"/>          
  6.     <!-- 渐变 -->          
  7.     <gradient          
  8.         android:startColor="#ff8c00"          
  9.         android:endColor="#FFFFFF"          
  10.         android:angle="270" />          
  11.     <!-- 描边 -->          
  12.     <stroke          
  13.         android:width="2dp"          
  14.         android:color="#dcdcdc" />          
  15.     <!-- 圆角 -->          
  16.     <corners          
  17.         android:radius="2dp" />          
  18.     <padding          
  19.         android:left="10dp"          
  20.         android:top="10dp"          
  21.         android:right="10dp"          
  22.         android:bottom="10dp" />          
  23. </shape>      

solid:实心,就是填充的意思

android:color指定填充的颜色

gradient:渐变

android:startColor和android:endColor分别为起始和结束颜色,ndroid:angle是渐变角度,必须为45的整数倍。

另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。

stroke:描边

android:width="2dp" 描边的宽度,android:color 描边的颜色。

我们还可以把描边弄成虚线的形式,设置方式为:

android:dashWidth="5dp"

android:dashGap="3dp"

其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。

corners:圆角

把四个角设定成不同的角度,方法为:

 

  1. XML/HTML 代码复制内容到剪贴板  
  2.       
  3. <corners          
  4.     android:topRightRadius="20dp"    右上角          
  5.     android:bottomLeftRadius="20dp"    右下角          
  6.     android:topLeftRadius="1dp"    左上角          
  7.     android:bottomRightRadius="0dp"    左下角          
  8. />