在带有阴影的LinearLayout上获取角半径

时间:2019-04-07 19:39:14

标签: android android-layout android-cardview

我需要将角半径应用到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>

这是起点(<corners android:radius="30dp"/>中没有shadow.xml): enter image description here

这就是我得到的结果(在<corners android:radius="30dp"/>中使用shadow.xmlenter image description here

现在在线性布局的拐角处没有白色背景的拐角半径怎么办?

2 个答案:

答案 0 :(得分:0)

也许您应该尝试向其中添加android:color =“ @ android:color / transparent”属性,或者您可以使用RelativeLayout并在该布局中使用一个具有此属性的ImageView并设置android:src =“ @ drawable / shadow “

答案 1 :(得分:0)

您似乎已经在做正确的事情,那就是将LinearLayout放在CardView中。只需一点技巧即可达到目的。

您不需要为LinearLayout做背景阴影和角落。而是将CardView用作容器,并将背景,高程(用于阴影)和半径应用于CardView。