如何使用layer-list在android中创建一个带有顶部和底部阴影的矩形?

时间:2016-08-22 11:03:38

标签: android android-layout xml-drawable layer-list

This is what i want

我需要一个黄色的矩形,在图像中给出了顶部和底部的阴影,我如何使用图层列表绘制它,我不知道如何做到这一点,尤其是阴影如何实现这种形状?

1 个答案:

答案 0 :(得分:3)

使用layer-list似乎是最好的选择。你需要两个矩形,主要是黄色的,另一个是阴影。然后,您可以稍微旋转阴影矩形以获得所需的效果。

例如:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:top="20dp" android:left="20dp" android:bottom="20dp" android:right="20dp">
        <rotate
            android:fromDegrees="-5"
            android:toDegrees="-5"
            android:pivotX="50%"
            android:pivotY="50%">
            <shape android:shape="rectangle">
                <size android:width="300dp"
                    android:height="150dp"/>
                <solid android:color="#999999"/>
            </shape>
        </rotate>
    </item>

    <item android:top="20dp" android:left="20dp" android:bottom="20dp" android:right="20dp">
        <shape android:shape="rectangle">
            <size android:width="300dp"
                android:height="150dp"/>
            <solid android:color="#FFDD66"/>
        </shape>
    </item>
</layer-list>

如果您需要使阴影更小,正如您在评论中所说,您可以缩小矩形。您可以通过将其缩小(宽度和高度)或使用<scale> ... </scale>标记来实现此目的。 Here's a related SO question.