安卓视图阴影

119

我搜索过,但找不到合适的方法实现以下视图的阴影效果:

图片描述

图片描述

说实话,我不知道第二个是不是通过应用阴影效果来完成的。有什么想法吗?


1
你是指这个吗?https://dev59.com/g2855IYBdhLWcg3wViot(查看最高票答案,而不是标记的答案) - Luke Vo
1
@DatVM,谢谢,这似乎可以解决问题,但我在想也许Android SDK中有内置工具。例如,通过添加几行代码为线性布局添加阴影效果 :P - longwalker
类似问题 - https://dev59.com/sK_la4cB1Zd3GeqPq06k - 如何给矢量图添加阴影。 - Mayank Kumar Chaudhari
13个回答

6
这个问题可能有点老了,但是对于未来想要实现复杂阴影效果的人来说,可以查看我的库,链接在这里:https://github.com/BluRe-CN/ComplexView 使用该库,您可以更改阴影颜色、微调边缘等等。这里有一个示例可以帮助您实现所需的效果。
<com.blure.complexview.ComplexView
        android:layout_width="400dp"
        android:layout_height="600dp"
        app:radius="10dp"
        app:shadow="true"
        app:shadowSpread="2">

        <com.blure.complexview.ComplexView
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            app:color="#fdfcfc"
            app:radius="10dp" />
    </com.blure.complexview.ComplexView>

要改变阴影颜色,请使用app:shadowColor="你的颜色代码"。


你的库真棒!即使在2023年,Android中的阴影处理仍然很痛苦。 - Maxdestroyer

4
使用高程属性来实现阴影效果:
<YourView
    ...
    android:elevation="3dp"/>

使用Elevation需要设备运行Lollipop。 - Shane Rowatt

1
使用此形状作为背景:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:drawable="@android:drawable/dialog_holo_light_frame"/>

    <item>
        <shape android:shape="rectangle">
            <corners android:radius="1dp" />
            <solid android:color="@color/gray_200" />
        </shape>
    </item>

</layer-list>

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