Android-XML自定义形状

Android-XML自定义形状,android,xml,shape,Android,Xml,Shape,我正在尝试用xml完成此形状: 我所尝试的: 对于黄色形状,我仍然无法正确地使用圆形和直形拐角。您需要使用形状可绘制,以便添加拐角标记。试一试 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <solid android:co

我正在尝试用xml完成此形状:

我所尝试的:



对于黄色形状,我仍然无法正确地使用圆形和直形拐角。

您需要使用
形状
可绘制,以便添加拐角标记。试一试

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid android:color="@color/res_pressed" />
            <corners android:topLeft="10dp" android:bottomLeft="10dp" />
        </shape>
    </item>
    <item
        android:top="0dp"
        android:right="0dp"
        android:bottom="0dp"
        android:left="15dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/res_default" />
            <corners android:topRight="10dp" android:bottomRight="10dp" />
        </shape>
    </item>
</layer-list>

这是一个解决方法:

创建
top.xml

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/colorPrimaryDark" />
    <corners
        android:radius="15dp"/>
 </shape>
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <solid android:color="@color/colorAccent" />
    <corners android:radius="15dp" />

</shape>
所需形状:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/bot" />
    <item
        android:bottom="0dp"
        android:drawable="@drawable/top"
        android:left="15dp"
        android:right="0dp"
        android:top="0dp"/>
</layer-list>

试试这个,和Gabe Sechan的帖子一样,但修改很少

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:width="20dp"
        >
        <shape android:shape="rectangle">
            <solid android:color="@color/yellow"/>
            <corners
                android:bottomLeftRadius="10dp"
                android:bottomRightRadius="0dp"
                android:topLeftRadius="10dp"
                android:topRightRadius="0dp"
                />
        </shape>
    </item>
    <item
        android:bottom="0dp"
        android:left="15dp"
        android:right="0dp"
        android:top="0dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/blue"/>
            <corners
                android:bottomLeftRadius="0dp"
                android:bottomRightRadius="10dp"
                android:topLeftRadius="0dp"
                android:topRightRadius="10dp"/>
        </shape>
    </item>
</layer-list>

在Android 4.0.3上进行了尝试,并给出了与问题相同的结果
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:width="20dp"
        >
        <shape android:shape="rectangle">
            <solid android:color="@color/yellow"/>
            <corners
                android:bottomLeftRadius="10dp"
                android:bottomRightRadius="0dp"
                android:topLeftRadius="10dp"
                android:topRightRadius="0dp"
                />
        </shape>
    </item>
    <item
        android:bottom="0dp"
        android:left="15dp"
        android:right="0dp"
        android:top="0dp">
        <shape android:shape="rectangle">
            <solid android:color="@color/blue"/>
            <corners
                android:bottomLeftRadius="0dp"
                android:bottomRightRadius="10dp"
                android:topLeftRadius="0dp"
                android:topRightRadius="10dp"/>
        </shape>
    </item>
</layer-list>