本文参考http://kofi1122.blog.51cto.com/2815761/521605和http://blog.csdn.net/qizi329/article/details/6309819

 

     
            
           
           
                            android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:angle="270" />
           
                            android:width="2dp"
                android:color="#dcdcdc" />
           
                            android:radius="2dp" />
                            android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
       

solid:实心,就是填充的意思
android:color指定填充的颜色

gradient:渐变
android:startColor和android:endColor分别为起始和结束颜色,android:angle是渐变角度,必须为45的整数倍
另外渐变默认的模式为android:type="linear",即线性渐变,可以指定渐变为径向渐变,android:type="radial",径向渐变需要指定半径android:gradientRadius="50"。

  android:angle网 上有各种说法,这里,我说说自己的实验结果,渐变的时候,最原始的,即android:angle=“0”时,是从左到右,按照开始颜色到结束颜色来渲染 的,android:angle=“90”是从上到下来渲染的,android:angle=“180”是从右到左来渲染 的,android:angle=“360”和android:angle=“0”是一样的,所以这里应该是这样的,渲染时按照最原始的渲染色板(把控件内部看作一块可以绕中心旋转的板子)围绕控件中心来旋转相应的度数,即android:angle里面的值就是所需要旋转的角度,只是这个旋转角度必须是45的整数倍


stroke:描边
android:width="2dp" 描边的宽度,android:color 描边的颜色。
我们还可以把描边弄成虚线的形式,设置方式为:
android:dashWidth="5dp" 
android:dashGap="3dp"
其中android:dashWidth表示'-'这样一个横线的宽度,android:dashGap表示之间隔开的距离。

corners:圆角
android:radius为角的弧度,值越大角越圆。
我们还可以把四个角设定成不同的角度,方法为:
        android:topRightRadius="20dp"    右上角
        android:bottomLeftRadius="20dp"    右下角
        android:topLeftRadius="1dp"    左上角
        android:bottomRightRadius="0dp"    左下角
 />
这里有个地方需要注意,bottomLeftRadius是右下角,而不是左下角,这个不要记错了
还有网上看到有人说设置成0dp无效,不过我在测试中发现是可以的,我用的是2.2,可能修复了这个问题吧,如果无效的话那就只能设成1dp了。

padding:间隔
中间文字距离边框的间隔。


大体的就是这样,以下是一个使用的具体示例:用在Selector中作为Button的背景,分别定义了按钮的一般状态、获得焦点状态和按下时的状态,具体代码如下:

main.xml:
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TestShapeButton"
    android:background="@drawable/button_selector"
    />


button_selector.xml:
<?xml version="1.0" encoding="utf-8"?>
    xmlns:android="http://schemas.android.com/apk/res/android">
   
       
           
                            android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:type="radial"
                android:gradientRadius="50" />
           
                            android:width="2dp"
                android:color="#dcdcdc"
                android:dashWidth="5dp" 
                android:dashGap="3dp" />
           
                            android:radius="2dp" />
                            android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
       

   


   
       
                            android:startColor="#ffc2b7"
                android:endColor="#ffc2b7"
                android:angle="270" />
                            android:width="2dp"
                android:color="#dcdcdc" />
                            android:radius="2dp" />
                            android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
       

   


           
       
            

                            android:width="2dp"
                android:color="#fad3cf" />
                            android:topRightRadius="5dp"
                android:bottomLeftRadius="5dp"
                android:topLeftRadius="0dp"
                android:bottomRightRadius="0dp"
            />
                            android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
       
   

运行效果如下图:

一般状态:

 

获得焦点状态:

 

按下状态:

转载于:https://www.cnblogs.com/xingmeng/archive/2012/08/28/2660185.html

更多相关文章

  1. android 电池(三):android电池系统
  2. Android四大组件完全解析(一)---Activity
  3. android简单Logo
  4. android 获取 imei号码
  5. android 获取 imei号码
  6. android 获取IMEI号
  7. 一个android的按钮
  8. Android隐藏状态栏、导航栏
  9. Android(安卓)NetworkInfo.DetailedState 获取wifi连接状态详情

随机推荐

  1. Android根文件系统分析
  2. 如何修改Android中Browser的UserAgent
  3. Android 个层次间调用关系
  4. 使用ADT开发Android应用程序
  5. 在Android Stduio 中使用requestWindowFe
  6. android下载编译以及文件系统提取总结
  7. Android常用控件之EditText
  8. 【Android那些高逼格的写法】LinkedBlock
  9. android 支持的声音格式详解
  10. Android中测量Text的宽度和高度