创建一个带有圆角顶部和底部边框的drawable

时间:2013-09-27 04:22:44

标签: android android-layout android-drawable

这就是我想出来的。

<?xml version="1.0" encoding="utf-8"?>
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@color/grey" />

            <padding
                android:bottom="1dp" />
            <corners 
                android:radius="0dp"/> 
        </shape>
    </item>
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@color/white" />
            <corners 
                android:radius="1dp" 
                android:bottomRightRadius="0dp" 
                android:bottomLeftRadius="0dp" 
                android:topLeftRadius="5dp" 
                android:topRightRadius="5dp"/> 
        </shape>
    </item>
</layer-list>

这是有效的,但是底部半径显示我放在它上面的任何值。

实际上只需要topLeftRadius使它看起来像这样

    <corners  
        android:bottomRightRadius="0dp" 
        android:bottomLeftRadius="0dp" 
        android:topLeftRadius="5dp" 
        android:topRightRadius="0dp"/> 

enter image description here

4 个答案:

答案 0 :(得分:5)

我有同样的问题,试试吧。它对我很好。我只是将 android:top =“10dp”添加到第二项。因此,它会导致圆顶角落。

<?xml version="1.0" encoding="utf-8" ?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle">
            <solid
                android:color="@color/dialog_title_bar_blue"/>

            <corners
                android:topLeftRadius="10dp"
                android:topRightRadius="10dp"/>
        </shape>
    </item>
    <item
        android:top="10dp">
        <shape android:shape="rectangle">
            <solid
                android:color="@color/dialog_title_bar_blue"/>
        </shape>
    </item>
</layer-list>

答案 1 :(得分:0)

<强>问题: 有一个提到here

的错误

<强>解决方案: 该错误已在api12中解决。

请尝试提供适当的资源。创建两个具有相同名称的xml文件,并将其中一个放入drawable文件夹,另一个放入drawable-v12文件夹。

- &gt; drawable 文件夹中:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <shape android:shape="rectangle" >
        <solid android:color="@color/grey" />

        <padding
            android:bottom="1dp" />
        <corners 
            android:radius="0dp"/> 
    </shape>
</item>
<item>
    <shape android:shape="rectangle" >
        <solid android:color="@color/white" />
        <corners 
            android:radius="1dp"
            android:bottomRightRadius="0dp" 
            android:bottomLeftRadius="0dp" 
            android:topLeftRadius="5dp" 
            android:topRightRadius="5dp"/> 
    </shape>
</item>
</layer-list>

- &gt; drawable-v12 文件夹中:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <shape android:shape="rectangle" >
        <solid android:color="@color/grey" />

        <padding
            android:bottom="1dp" />
        <corners 
            android:radius="0dp"/> 
    </shape>
</item>
<item>
    <shape android:shape="rectangle" >
        <solid android:color="@color/white" />
        <corners 
            android:bottomRightRadius="0dp" 
            android:bottomLeftRadius="0dp" 
            android:topLeftRadius="5dp" 
            android:topRightRadius="5dp"/> 
    </shape>
</item>
</layer-list>

我希望它会有所帮助!

答案 2 :(得分:0)

嗨,这是你的解决方案&#34;干杯:)&#34;

首先将此布局添加为背景。 然后在下面添加一个视图aline。

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

    <!-- you can use any color you want I used here gray color -->
    <solid android:color="#ffffff" />

    <corners
        android:topLeftRadius="3dp"
        android:topRightRadius="3dp" />

</shape>

视图

<View
    android:layout_width="fill_parent"
    android:layout_height="1dp"
    android:background="@android:color/black"/>

答案 3 :(得分:0)

<item>
    <shape>
        <corners
            android:bottomLeftRadius="0.1dp"
            android:bottomRightRadius="0.1dp"
            android:topLeftRadius="10dp"
            android:topRightRadius="10dp" />

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

        <stroke
            android:width="3dp"
            android:color="@android:color/black" />
    </shape>
</item>
<item android:bottom="3dp">
    <shape>
        <corners
            android:bottomLeftRadius="0.1dp"
            android:bottomRightRadius="0.1dp"
            android:topLeftRadius="10dp"
            android:topRightRadius="10dp" />

        <solid android:color="#800000" />
    </shape>
</item>