如何在android中的布局中给出阴影

Posted

技术标签:

【中文标题】如何在android中的布局中给出阴影【英文标题】:How to give drop shadow in layouts in android 【发布时间】:2021-12-23 20:05:51 【问题描述】:

我想在我的布局中实现这个投影。我的布局是相对布局和线性布局。 我已经尝试过,但没有任何进展。 我附上了一张图片,以便帮助我实现我想要实现的目标。

我的.xml


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

  <solid
      android:color="#4D0B1020"/>
  <stroke
      android:color="#1AFFFFFF"
      android:

      />
  <corners
      android:radius="12dp"/>

</shape>

【问题讨论】:

如果不是透明背景,那么使用 cardview 作为父级就可以了。我建议的最好方法是使用阴影作为背景的 9patch 图像。你可以在 android 中做,但会有点重***.com/a/41478599/6478047 卡片视图或海拔 【参考方案1】:

试试下面的代码:

(在这种情况下,MaterialCardView 的子元素是普通的 LinearLayout,请随意将其替换为您的自定义布局。)

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_
    tools:context=".MainActivity">

    <com.google.android.material.card.MaterialCardView
        android:layout_
        android:layout_
        app:cardElevation="10dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <LinearLayout
            android:id="@+id/dropShadowLinearLayout"
            android:layout_
            android:layout_
            android:orientation="horizontal" />
    </com.google.android.material.card.MaterialCardView>
</androidx.constraintlayout.widget.ConstraintLayout>

这里的高程只有 10dp,您可以将其更改为您想要的任何值并根据自己的喜好进行自定义。

图片:


【讨论】:

以上是关于如何在android中的布局中给出阴影的主要内容,如果未能解决你的问题,请参考以下文章

如何在android的linearlayout中删除阴影?

Android 样式/阴影正确 ListItem 布局

如何删除LinearLayout阴影? [重复]

如何在android中的drawable上添加阴影效果

如何制作像redbus一样的座位布局?

如何在android中为Fragment TabHost提供底部阴影?