自定义形状的阴影

问题描述 投票:0回答:1

我必须根据以下设计实现横幅:

这里的复杂性在于圆形徽标的阴影,徽标圆圈的阴影是横幅矩形卡片的阴影的延续。下图概述了阴影的边界:

shadow

当然,不应将阴影投射在卡片顶部下方的表面上。徽标中心也与卡的边框有一些偏移。

如何实现此效果?标准的android形状不允许形成这样的轮廓。手动绘制所有内容似乎对于这个问题来说太复杂了。我们有minSdkVersion 21.]

我必须根据以下设计实现横幅:这里的复杂性在于圆形徽标的阴影,徽标圆圈的阴影是...的阴影的延续。]

android view shadow shapes
1个回答
0
投票
您可以使用此技巧来实现

<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" xmlns:app="http://schemas.android.com/apk/res-auto"> <androidx.cardview.widget.CardView app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginTop="20dp" app:cardCornerRadius="56dp" app:cardElevation="16dp" android:layout_width="56dp" android:layout_height="56dp"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent"> <de.hdodenhof.circleimageview.CircleImageView android:layout_width="match_parent" android:src="@color/colorPrimary" android:layout_height="match_parent"/> </LinearLayout> </androidx.cardview.widget.CardView> <androidx.cardview.widget.CardView app:cardElevation="16dp" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:layout_constraintEnd_toEndOf="parent" android:layout_marginTop="48dp" android:layout_width="350dp" android:layout_height="500dp"> <LinearLayout android:layout_marginTop="-28dp" android:layout_gravity="center_horizontal" android:layout_width="56dp" android:layout_height="56dp"> <de.hdodenhof.circleimageview.CircleImageView android:layout_width="match_parent" android:src="@color/colorPrimary" android:layout_height="match_parent"/> </LinearLayout> </androidx.cardview.widget.CardView> </androidx.constraintlayout.widget.ConstraintLayout>

© www.soinside.com 2019 - 2024. All rights reserved.