android - 如何将阴影添加到线性布局 - android?

标签 android

在我的 android 应用程序中,我必须实现如下图所示的内容: enter image description here

我尝试过使用阴影 xml 进行线性布局,但它似乎并没有达到我想要的效果。 我使用的代码是:

<?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="@android:color/darker_gray" />
        <corners android:radius="5dp"/>
    </shape>
</item>
<item android:right="5dp" android:left="5dp" android:bottom="15dp">
    <shape
        android:shape="rectangle">
        <solid android:color="@android:color/white"/>
        <corners android:radius="5dp"/>
    </shape>
</item>
</layer-list>

请建议我如何实现这一目标。

最佳答案

您可以使用带有阴影的 9-patchImage 作为背景,或者您可以使用以下 xml 作为阴影的 linearlayout 背景

  <?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <!-- Drop Shadow Stack -->
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#02000000" />
            <corners android:radius="8dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#05000000" />
            <corners android:radius="7dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#10000000" />
            <corners android:radius="6dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#15000000" />
            <corners android:radius="5dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#20000000" />
            <corners android:radius="4dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#25000000" />
            <corners android:radius="3dp" />
        </shape>
    </item>
    <item>
        <shape>
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
            <solid android:color="#30000000" />
            <corners android:radius="3dp" />
        </shape>
    </item>

    <!-- Background -->
    <item>
    <shape>
            <solid android:color="#ffffff" />
        <corners android:radius="3dp" />
    </shape>
   </item>
</layer-list>

从不需要阴影的任何一侧移除填充

注意:

这不是我的,我从很久以前的某个地方复制了它,但找不到它来给予适当的信任。如果您知道它的出处,请随时编辑并保留版权

关于android - 如何将阴影添加到线性布局 - android?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41478246/

相关文章:

java - 意向服务单例

Android postDelayed不延时

Android 开发 - 测试 SD 卡还是假设它在那里?

android - 电子邮件 Intent 不再适用于 Android Lollipop

android - 您可以在 Web 应用程序和原生 Android 应用程序之间共享任何类型的信息吗?

android - 如何使用 cognito 在 android 中指定自定义错误消息

android - 我们如何在 Activity 中使用颜色查看背景图像?

java - 为什么你不应该在constraintlayout中使用match_parent?

android - FragmentPagerAdapter、 fragment 、support.v4 和 support.v13

android - Material 按钮未在预览中正确显示