список слоев не работает должным образом, я хочу понять эту концепцию

У меня есть хорошая идея о layer_list, указанная здесь и здесь

вот мой код

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

    <shape android:shape="rectangle">

        <solid android:color="#FEBB02" />
        <corners android:radius="4dp" />
        <size
            android:width="40dp"
            android:height="20dp" />
    </shape>
</item>

<item
    android:bottom="2dp"
    android:left="10dp"
    android:right="10dp"
   >
    <rotate
        android:toDegrees="45"
        android:fromDegrees="45"
        android:pivotX="50%"
        android:pivotY="50%">
        <shape android:shape="rectangle">
            <solid android:color="#3F51B5" />
            <corners android:radius="2dp" />
        </shape>
    </rotate>
</item>

This is how it is look line in studio enter image description here

но когда я применяю фон Linearlayout, он дает этот результат введите здесь описание изображения

Я ожидаю, что угол будет ниже заостренного, как видно в студии.


person Lokesh Tiwari    schedule 27.12.2015    source источник


Ответы (2)


Я думаю, вам следует попробовать установить для атрибутов clipToPadding и clipChildren значение false внутри родительского представления линейного макета.

person Faisal Ahmed    schedule 12.06.2018

Пожалуйста, измените размер Linearlayout на 150dp * 100dp. введите здесь описание изображения

 <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!--<item>-->
        <!--<scale  android:drawable="@drawable/ic_launcher"  android:useIntrinsicSizeAsMinimum="true">-->
            <!--&lt;!&ndash;<shape android:shape="rectangle" android:useLevel="true">&ndash;&gt;-->
                <!--&lt;!&ndash;<solid android:color="@color/red" />&ndash;&gt;-->
                <!--&lt;!&ndash;<size&ndash;&gt;-->
                    <!--&lt;!&ndash;android:width="60dp"&ndash;&gt;-->
                    <!--&lt;!&ndash;android:height="60dp" />&ndash;&gt;-->
            <!--&lt;!&ndash;</shape>&ndash;&gt;-->
        <!--</scale>-->
    <!--</item>-->
    <item
        android:bottom="15dp"
        android:left="0dp"
        android:right="0dp"
        android:top="15dp">

        <shape android:shape="rectangle">

            <solid android:color="#FEBB02" />
            <corners android:radius="4dp" />
            <size
                android:width="150dp"
                android:height="70dp" />
        </shape>
    </item>

    <item
        android:bottom="15dp"
        android:left="40dp"
        android:right="40dp"
        android:top="15dp"
        >
        <rotate
            android:toDegrees="45"
            android:fromDegrees="45"
            android:pivotX="50%"
            android:pivotY="50%">
            <shape android:shape="rectangle">
                <solid android:color="#3F51B5" />
                <corners android:radius="2dp" />
                <size
                    android:width="70dp"
                    android:height="70dp" />
            </shape>
        </rotate>
    </item>
</layer-list>
person tiny sunlight    schedule 27.12.2015
comment
@LokeshTiwari Я думаю, что вы должны использовать размер в зависимости от фактического размера, когда вы его используете. - person tiny sunlight; 27.12.2015
comment
Пробовал, что также основная проблема заключается в том, что кончик угла обрезается, и представлен только квадратный фон. Я ожидаю, что нижний угол угла должен быть снаружи, как видно в макете студии. - person Lokesh Tiwari; 27.12.2015
comment
Каков размер Linearlayout? - person tiny sunlight; 27.12.2015
comment
Размер линейного макета 150dp * 70dp. - person Lokesh Tiwari; 06.01.2016
comment
Размер должен быть 150dp * 100dp. - person tiny sunlight; 06.01.2016