Создайте рисуемый объект с закругленными верхними углами и рамкой внизу

Это то, что я придумал.

<?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"/> 

введите здесь описание изображения


person bman    schedule 27.09.2013    source источник
comment
Эй, не могли бы вы добавить больше информации о требовании или скриншот того, как это должно выглядеть?   -  person Permita    schedule 27.09.2013


Ответы (3)


У меня была такая же проблема, попробуйте. это сработало для меня хорошо. Я просто добавляю 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>
person NrNazifi    schedule 10.12.2013

Привет, вот ваше решение "Ура :)"

сначала добавьте этот макет в качестве фона. Затем внизу добавьте вид как 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"/>
person DropAndTrap    schedule 27.09.2013
comment
это я сделал в своем проекте. Он работает нормально. Ваше требование похоже на то, что вы не можете добавить строку ниже Обновите страницу, я обновил код - person DropAndTrap; 27.09.2013

Проблема: есть ошибка, как указано здесь< /а>

Решение: ошибка исправлена ​​в API12.

поэтому попробуйте, предоставив соответствующие ресурсы. Создайте два файла xml с одинаковым именем и поместите один из них в папку drawable, а другой - в папку drawable-v12.

-> В папке 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>

-> В папке 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>

Я надеюсь, что это будет полезно!

person Mehul Joisar    schedule 27.09.2013
comment
спасибо за помощь, однако я просто ориентируюсь на v17-v18. не работает при удалении android:radius="1dp" - person bman; 27.09.2013
comment
тестирование на реальном устройстве или эмуляторе? - person Mehul Joisar; 27.09.2013