Shape和 layer-list

shape 基本使用

   <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
            <!-- 实心填充 -->
            <solid android:color="#ff9d77"/>
            <!-- 描边 -->
            <stroke
                android:width="2dp"
                android:color="#dcdcdc" />
            <!-- 圆角 -->
            <corners
                android:radius="2dp" />
            <!-- 渐变 -->
            <gradient
                android:startColor="#ff8c00"
                android:endColor="#FFFFFF"
                android:angle="270" />    //线性渐变的角度
            <padding
                android:left="10dp"
                android:top="10dp"
                android:right="10dp"
                android:bottom="10dp" />
     </shape>

渐变的属性 :

 android:angle       渐变角度(PS:当angle=0时,渐变色是从左向右。 然后逆时针方向转,当angle=90时为从下往上。angle必须为45的整数倍)     
 android:type     渐变类型(取值:linear、radial、sweep)     
                     linear  线性渐变,这是默认设置     
                     radial  放射性渐变,以开始色为中心。     
                     sweep   扫描线式的渐变。  

 

shape 属性

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    
    <!-- 圆角 -->
    <corners
        android:radius="9dp"
        android:topLeftRadius="2dp"     //左上角
        android:topRightRadius="2dp"    //右上角
        android:bottomLeftRadius="2dp"      //右下角
        android:bottomRightRadius="2dp"/>   //左下角

    
    <!-- 渐变 -->
    <gradient
        android:startColor="@android:color/white"
        android:centerColor="@android:color/black"
        android:endColor="@android:color/black"
        android:useLevel="true"
        android:angle="45"
        android:type="radial"
        android:centerX="0"
        android:centerY="0"
        android:gradientRadius="90"/>
    
    <!-- 间隔 -->
    <padding
        android:left="2dp"
        android:top="2dp"
        android:right="2dp"
        android:bottom="2dp"/><!-- 各方向的间隔 -->
    
    <!-- 大小 -->
    <size
        android:width="50dp"
        android:height="50dp"/><!-- 宽度和高度 -->
    
    <!-- 填充 -->
    <solid
        android:color="@android:color/white"/><!-- 填充的颜色 -->
    
    <!-- 描边 -->
    <stroke
        android:width="2dp"
        android:color="@android:color/black"
        android:dashWidth="1dp"     //虚线宽度
        android:dashGap="2dp"/>    //虚线间隔
    
</shape>

 

shape 选择器使用 

<?xml version="1.0" encoding="utf-8"?>  
<selector  
       xmlns:android="http://schemas.android.com/apk/res/android">  
    <item android:state_pressed="true" >          //按下
        <shape>  
            <!-- 渐变 -->  
            <gradient  
                android:startColor="#ff8c00"  
                android:endColor="#FFFFFF"  
                android:type="radial"             //径向渐变
                android:gradientRadius="50" />    //半径50
            <!-- 描边 -->  
            <stroke  
                android:width="2dp"  
                android:color="#dcdcdc"  
                android:dashWidth="5dp"  
                android:dashGap="3dp" />  
            <!-- 圆角 -->  
            <corners  
                android:radius="2dp" />  
            <padding  
                android:left="10dp"  
                android:top="10dp"  
                android:right="10dp"  
                android:bottom="10dp" />  
        </shape>  
    </item>  
  
    <item android:state_focused="true" >      //得到焦点
        <shape>  
            <gradient  
                android:startColor="#ffc2b7"  
                android:endColor="#ffc2b7"  
                android:angle="270" />  
            <stroke  
                android:width="2dp"  
                android:color="#dcdcdc" />  
            <corners  
                android:radius="2dp" />  
            <padding  
                android:left="10dp"  
                android:top="10dp"  
                android:right="10dp"  
                android:bottom="10dp" />  
        </shape>  
    </item>  
  
    <item>                                //默认
        <shape>  
            <solid android:color="#ff9d77"/>  
            <stroke  
                android:width="2dp"  
                android:color="#fad3cf" />  
            <corners  
                android:topRightRadius="5dp"  
                android:bottomLeftRadius="5dp"  
                android:topLeftRadius="0dp"  
                android:bottomRightRadius="0dp"  
            />  
            <padding  
                android:left="10dp"  
                android:top="10dp"  
                android:right="10dp"  
                android:bottom="10dp" />  
        </shape>  
    </item>  
</selector>

 layer-list  将多个图片或上面两种效果按照顺序层叠起来

<?xml version="1.0" encoding="utf-8"?>  
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">  
    <item>  
      <bitmap android:src="@drawable/android_red"  
        android:gravity="center" />  
    </item>  
    <item android:top="10dp" android:left="10dp">    //顶部10 ,左边10
      <bitmap android:src="@drawable/android_green"  
        android:gravity="center" />  
    </item>  
    <item android:top="20dp" android:left="20dp">  
      <bitmap android:src="@drawable/android_blue"  
        android:gravity="center" />  
    </item>  
</layer-list>  

 

posted @ 2015-01-13 15:30  每天学习一点点...  阅读(422)  评论(0编辑  收藏  举报