• 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>  

  • 相关阅读:
    SVN服务器搭建(一)
    排序算法二:冒泡排序
    【LeetCode】136. Single Number
    【LeetCode】217. Contains Duplicate
    【LeetCode】189. Rotate Array
    【LeetCode】122. Best Time to Buy and Sell Stock II
    【LeetCode】26. Remove Duplicates from Sorted Array
    【LeetCode】20. Valid Parentheses
    【LeetCode】680. Valid Palindrome II
    【LeetCode】345. Reverse Vowels of a String
  • 原文地址:https://www.cnblogs.com/java-g/p/4221469.html
Copyright © 2020-2023  润新知