安卓:盒阴影和边框半径布局

8

我希望你能够实现以下图片中的 box shadowradius,但在安卓系统中 box shadow 无法起作用。

enter image description here

我该如何使用 xml 解决这个问题?

3个回答

9

对于角落,您需要像下面这样使用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"
..
/>

请尝试使用 android:elevation - user6490462
android:layout_gravity="center" 设置为居中。 - user6490462
这个答案似乎不完整。 </shape> 标签在哪里? - toto_tata
我解决了问题,谢谢你的提及。@Regis_AG - Max Base

8
您可以将此形状设置为任何视图的背景。
<?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>

4
    <?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属性即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接