Android:带有圆角投影的布局

时间:2014-06-12 08:04:57

标签: android shape

我想在布局的背景中使用 shape ,如下图所示。我尝试了一些东西,如下所示。

borders.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!--Layer 0-->
<!--Layer 1-->
<!--Layer 2-->
<!--Layer 3-->
<!--Layer 4 (content background)-->

    <!-- dropshadow -->
    <item>
        <shape>
            <solid android:color="#10CCCCCC" />
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        </shape>
    </item>

    <item>
        <shape>
            <solid android:color="#20CCCCCC" />
           <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        </shape>
    </item>

    <item>
        <shape>
            <solid android:color="#40CCCCCC" />
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        </shape>
    </item>

    <item>
        <shape>
            <solid android:color="#50CCCCCC" />
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        </shape>
    </item>

    <item>
        <shape>
            <solid android:color="#60CCCCCC" />
            <padding android:top="1dp" android:right="1dp" android:bottom="1dp" android:left="1dp" />
        </shape>
    </item>

    <!-- content background -->
    <item>
        <shape>
            <solid android:color="#ffffff" />
        </shape>
    </item>
</layer-list>

布局设置为

android:background="@drawable/borders"

通过此实施,我就是这样

enter image description here

如何获得带有圆角的阴影,如下图所示?

enter image description here

2 个答案:

答案 0 :(得分:17)

你应该在形状上添加“角落”:

 <?xml version="1.0" encoding="UTF-8"?> 
<shape xmlns:android="http://schemas.android.com/apk/res/android"> 
<solid android:color="#ffffffff"/>    

<stroke android:width="3dp"
        android:color="#ff000000"
        />

<padding android:left="1dp"
         android:top="1dp"
         android:right="1dp"
         android:bottom="1dp"
         /> 

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

答案 1 :(得分:0)

只需将其添加到您的Drawable布局中即可:

<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <layer-list>
            <item>
                <shape android:shape="oval">
                    <gradient
                        android:startColor="#FF000000"
                        android:endColor="#00000000"

                        android:gradientRadius="31dp"
                        android:type="radial"
                        />
                </shape>
            </item>
            <item android:top="4dp" android:left="4dp" android:right="4dp" android:bottom="4dp">
            <shape android:shape="oval">
                <size android:width="55dp"
                    android:height="55dp"/>
                <solid android:color="@android:color/white" />
            </shape>
            </item>


        </layer-list>
    </item>

</selector>