Android: расположение тени и рамки

Я хочу box shadow а также radius как на картинке ниже, но в Android box shadow не работа

Как я могу использовать xml для этой проблемы?

2 ответа

Решение

Для угла вы должны использовать drawable как ниже:

<shape
xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>

<!-- view border color and width -->
<stroke
    android:width="1dip"
    android:color="#a4a2a2" >
</stroke>

<corners android:radius="180px">

</corners>
<!-- Here is the corner radius -->

а про тень

я думаю ты имеешь ввиду android:elevation="8dp"

<Yourbox
android:width="match_parent"
android:height="match_parent"
....
android:elevation="8dp"
android:layout_gravity="center"
..
/>

Вы можете установить эту форму в качестве фона любых видов

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

    <!-- Drop Shadow Stack -->
    <item>
        <shape>
            <corners android:radius="4dp" />

            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />

            <solid android:color="#00CCCCCC" />
        </shape>
    </item>
    <item>
        <shape>
            <corners android:radius="4dp" />

            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />

            <solid android:color="#10CCCCCC" />
        </shape>
    </item>
    <item>
        <shape>
            <corners android:radius="4dp" />

            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />

            <solid android:color="#20d5d5d5" />
        </shape>
    </item>
    <item>
        <shape>
            <corners android:radius="6dp" />

            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />

            <solid android:color="#30cbcbcb" />
        </shape>
    </item>
    <item>
        <shape>
            <corners android:radius="4dp" />

            <padding
                android:bottom="1dp"
                android:left="1dp"
                android:right="1dp"
                android:top="1dp" />

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

    <!-- Background -->
    <item>
        <shape>
            <solid android:color="@color/gray_100" />

            <corners android:radius="4dp" />
        </shape>
    </item>

</layer-list>
    <?xml version="1.0" encoding="utf-8"?>
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="270dp"
    android:layout_height="130dp"
    android:layout_margin="15dp"
    android:translationZ="4dp"
    app:cardCornerRadius="6dp"
    app:cardElevation="0dp">
    .....
</androidx.cardview.widget.CardView>

просто используйте translationZ

Другие вопросы по тегам