如何使用盒阴影制作相对布局

8

在此输入图片描述

我该如何使相对布局的效果看起来像这张图片呢?


https://dev59.com/hnA65IYBdhLWcg3wrQl4 - Yogendra
3个回答

19

创建阴影有两种方式:

  1. 如果 sdk 版本低于 5.0...

    A. 您还可以使用 Android Drawable 图像。

android:background="@android:drawable/dialog_holo_light_frame"

使用下面的shadow_round.xml为视图的阴影制作可绘制的背景。 android:background="@drawable/shadow_round"

 <!-- Drop Shadow Stack -->
 <item>
    <shape>
        <padding android:top="1dp" android:right="1dp" android:bottom="2dp" android:left="1dp" />
        <corners android:radius="10dp" />
        <solid android:color="#00CCCCCC" />
    </shape>
</item>
<item>
    <shape>
        <padding android:top="1dp" android:right="1dp" android:bottom="2dp" android:left="1dp" />
        <corners android:radius="10dp" />
        <solid android:color="#10CCCCCC" />
    </shape>
</item>
<item>
    <shape>
        <padding android:top="1dp" android:right="1dp" android:bottom="2dp" android:left="1dp" />
        <corners android:radius="10dp" />
        <solid android:color="#20CCCCCC" />
    </shape>
</item>
 <item>
    <shape>
        <padding android:top="1dp" android:right="1dp" android:bottom="2dp" android:left="1dp" />
        <corners android:radius="10dp" />
        <solid android:color="#30CCCCCC" />
    </shape>
</item>
<item>
    <shape>
        <padding android:top="1dp" android:right="1dp" android:bottom="2dp" android:left="1dp" />
        <corners android:radius="10dp" />
        <solid android:color="#50CCCCCC" />
    </shape>
</item> 

<!-- Background -->
<item>
<shape>
    <solid android:color="#ffffff" />
    <corners android:radius="10dp" />
</shape>
</item>
如果您正在使用SDK 5.0或更高版本,请使用视图的 elevation 属性。

  • android:elevation="2dp"
    

  • 使用A:这会导致在5.1设备上每隔几秒钟出现奇怪的闪烁。如果将资源直接从SDK复制到应用程序的res目录中,则闪烁会消失。不知道为什么。 - user153275
    我们发现在旧版本的安卓手机上,B非常缓慢。 - Kinetic

    4

    在您的相对布局中简单添加高程属性,或在drawable文件夹中创建XML并作为背景调用。

       <?xml version="1.0" encoding="utf-8"?>
    
           <shape  
                 xmlns:android="http://schemas.android.com/apk/res/android"
                 android:shape="rectangle">
           <solid android:color="#ddd" />
           <stroke
               android:width="5dp"
               android:color="#b8b9b9" />
           <corners
               android:radius="3dp" />
           </shape>
    

    0
    尝试这段代码:- radius.xml
    将此xml添加到drawable文件夹中,并在相对布局中设置背景。
    android:background="@drawable/radius"
    
    <shape android:shape="rectangle">
        <solid android:color="#FFFFFF"/>
        <stroke android:width="2dp" android:color="#b8b9b9"/>
        <corners android:bottomLeftRadius="3dp" android:bottomRightRadius="3dp" android:topLeftRadius="3dp" android:topRightRadius="3dp"/>
    </shape>
    

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接