Android shape实现渐变、部分圆角及叠加效果

1、普通圆角背景

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">

    <solid android:color="#cccccc"/>
 
    <corners
        android:radius="10dp"/>
</shape>

Android shape实现渐变、部分圆角及叠加效果

2、部分圆角渐变背景

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!--渐变色填充-->
    <gradient
        android:angle="0"
        android:endColor="#cccccc"
        android:startColor="#222222" />
    <!--部分圆角-->
    <corners
        android:bottomLeftRadius="10dp"
        android:bottomRightRadius="10dp"
        android:topLeftRadius="0dp"
        android:topRightRadius="0dp" />
</shape>

Android shape实现渐变、部分圆角及叠加效果

3、叠加部分圆角渐变背景

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <!--最底层绿色 左右间距-->
    <item android:left="42dp"
        android:right="42dp">
        <shape android:shape="rectangle">
            <!--纯色填充-->
            <solid android:color="#00ff00"/>
            <!--部分圆角-->
            <corners
                android:bottomLeftRadius="10dp"
                android:bottomRightRadius="10dp"
                android:topLeftRadius="0dp"
                android:topRightRadius="0dp" />
        </shape>
    </item>

    <!-- 中间层红色 左右间距 下间距-->
    <item android:bottom="10dp"
        android:left="21dp"
        android:right="21dp">
        <shape android:shape="rectangle" >

            <!--纯色填充-->
            <solid android:color="#ff0000"/>
            <!--部分圆角-->
            <corners
                android:bottomLeftRadius="10dp"
                android:bottomRightRadius="10dp"
                android:topLeftRadius="0dp"
                android:topRightRadius="0dp" />
        </shape>
    </item>

    <!-- 最上层渐变色  下间距-->
    <item android:bottom="20dp">
        <shape android:shape="rectangle" >
            <!--渐变色填充-->
            <gradient
                android:angle="0"
                android:endColor="#cccccc"
                android:startColor="#222222" />
            <!--部分圆角-->
            <corners
                android:topLeftRadius="0dp"
                android:topRightRadius="0dp"
                android:bottomRightRadius="10dp"
                android:bottomLeftRadius="10dp"/>
        </shape>
    </item>
</layer-list>

Android shape实现渐变、部分圆角及叠加效果

4、底边框背景

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--不设置top,top边框就会显示出来,这里未设置top和bottom,于是上下边框都显示出来了,同理可设置左右边框-->
    <item
        android:right="-2dp"
        android:left="-2dp">
        <shape>
            <solid android:color="@android:color/transparent"/>
            <stroke
                android:width="0.5dp"
                android:color="#ff0000"/>
        </shape>
    </item>

</layer-list>

Android shape实现渐变、部分圆角及叠加效果