如何使用图层列表在 android 中制作带有顶部和底部阴影的矩形?

How to make an rectangle with top and bottom shadow in android using layer-list?

我需要一个顶部和底部带有阴影的黄色矩形,如图所示,我如何使用图层列表绘制它,我不知道该怎么做,尤其是阴影如何实现该形状?

使用 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.