在带有阴影的 LinearLayout 上获取角半径
Posted
技术标签:
【中文标题】在带有阴影的 LinearLayout 上获取角半径【英文标题】:Get corner radius on LinearLayout with shadow 【发布时间】:2019-04-07 19:39:14 【问题描述】:我需要将圆角半径应用于LinearLayout
,它还具有阴影效果的背景。当我尝试将角半径添加到背景 XML 时,我只会在角上得到白色背景。我将用代码和照片演示我的意思。
这是shadow.xml
中的代码(注意<corners android:radius="30dp"/>
这一行):
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--the shadow comes from here-->
<item
android:bottom="0dp"
android:drawable="@android:drawable/dialog_holo_light_frame"
android:left="0dp"
android:right="0dp"
android:top="0dp">
</item>
<item
android:bottom="0dp"
android:left="0dp"
android:right="0dp"
android:top="0dp">
<!--whatever you want in the background, here i preferred solid white -->
<shape android:shape="rectangle">
<solid android:color="@color/myPink" />
<corners android:radius="30dp"/> //THIS LINE IS NOT INCLUDED IN PHOTO 1
</shape>
</item>
这是起点(shadow.xml
中没有 <corners android:radius="30dp"/>
):
这就是我得到的结果(<corners android:radius="30dp"/>
in shadow.xml
)
现在Linear Layout的拐角处没有白色背景的拐角半径怎么办?
【问题讨论】:
【参考方案1】:也许您应该尝试添加 android:color="@android:color/transparent" 属性,或者您可以使用 RelativeLayout 并在该布局中使用具有此属性的 ImageView 并设置 android:src="@drawable/shadow "
【讨论】:
【参考方案2】:您似乎已经在做正确的事情,即将 LinearLayout 放在 CardView 中。只需一点技巧即可达到效果。
LinearLayout 不需要做背景阴影和角。相反,将 CardView 用作容器并将背景、高度(用于阴影)和半径应用于 CardView。
【讨论】:
以上是关于在带有阴影的 LinearLayout 上获取角半径的主要内容,如果未能解决你的问题,请参考以下文章
Android LinearLayout:在 LinearLayout 周围添加带阴影的边框