您的位置:首页 > 移动开发 > Android开发

Android给控件自定义边框和阴影

2015-12-27 16:25 417 查看
所谓添加阴影,就是两个画布从重叠,上方的画布小于下方的画布,阴影颜色为下方的画布的颜色。

item 中shape 的属性 (rectangle:矩形;line:线性;oval:椭圆;ring:环形),默认为矩形

   corners    //设置圆角幅度,必须是在shape=rectangle的时候,corners才有效   


             <corners    

                         android:radius="dimension"      //全部的圆角半径      

                         android:topLeftRadius="dimension"   //左上角的圆角半径       

                         android:topRightRadius="dimension"  //右上角的圆角半径   

                         android:bottomLeftRadius="dimension"    //左下角的圆角半径

                        android:bottomRightRadius="dimension" />    //右下角的圆角半径

           eg:<corners android:radius="10dp" />
   solid用以指定内部填充色

         e.g:<solid  android:color="color" />

   gradient  //定义渐变色,可以定义两色渐变和三色渐变,及渐变样式

          linear(线性渐变)、radial(放射性渐变)、sweep(扫描式渐变), 在构造放射性渐变时,要加上android:gradientRadius属性(渐变半径),即必须指定渐变半径的大小才会起作用。

                   <gradient     

                           android:type=["linear" | "radial" | "sweep"]    //共有3中渐变类型
 

                           android:angle="integer"     //渐变角度,必须为45的倍数,0为从左到右,90为从上到下    

                           android:centerX="float"     //渐变中心X的相当位置,范围为0~1     

                           android:centerY="float"     //渐变中心Y的相当位置,范围为0~1    

                           android:startColor="color"   //渐变开始点的颜色    

                           android:centerColor="color"  //渐变中间点的颜色,在开始与结束点之间   

                           android:endColor="color"    //渐变结束点的颜色    

                           android:gradientRadius="float"  //渐变的半径,只有当渐变类型为radial时才有效
   

                           android:useLevel=["true" | "false"] />  //使用LevelListDrawable时就要设置为true。设为false时才有渐变效果   

   stroke   //这是描边属性,可以定义描边的宽度,颜色,虚实线等

            <stroke          

                  android:width="dimension"   //描边的宽度     

                  android:color="color"   //描边的颜色   
// 以下两个属性设置虚线   

                  android:dashWidth="dimension"   //虚线的宽度,值为0时是实线  

                  android:dashGap="dimension" />      //虚线的间隔  

在Eclipse工程文件下的drawable文件下,新建shape_background_shadow_normal.xml文件。   

<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- Bottom 2dp Shadow :底部阴影层-->

    <item>

        <shape android:shape="rectangle" >

            <solid android:color="#BBB" />

            <corners android:radius="10dp" />

        </shape>

    </item>

    <!-- White Top color:顶部层 -->

    <item

        android:bottom="4px"

        android:left="2px"

        android:right="3px"

        android:top="2px">

        <shape android:shape="rectangle" >

            <solid android:color="@color/white" />

            <corners android:radius="10dp" />

            <padding

                android:bottom="15dp"

                android:left="15dp"

                android:right="15dp"

                android:top="15dp" />

            <!--设置边框 宽度=1px,颜色为skyBluesss-->

            <stroke

                android:width="1px"

                android:color="@color/skyblue" />

          

        </shape>

    </item>

</layer-list>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息