XML 矩形弯曲边缘以外区域的颜色

XML Color for area outside rectangle's curved edges

我正在为 RelativeLayout 的背景制作一个矩形,想知道如何使该矩形圆角边缘之外的区域也为 darker_grey。目前,只有这个矩形的内部是 darker_grey

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" >
    <solid android:color="@android:color/darker_gray" />
    <stroke android:width="1dip" android:color="@android:color/black"/>
    <corners android:radius="20dp" />
</shape>

您可以切换到 layer-list 可绘制对象,然后将您的形状分层放置在纯色之上,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <color android:color="@android:color/darker_gray" />
    </item>
    <item>
        <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
            <solid android:color="@android:color/darker_gray" />
            <stroke android:width="1dip" android:color="@android:color/black"/>
            <corners android:radius="20dp" />
        </shape>
    </item>
</layer-list>

另一种使用形状为任何视图实现背景颜色的方法:

<ImageView
        android:layout_width="200dp" 
        android:layout_height="200dp"
        android:background="@android:color/darker_gray"
        android:src="@drawable/shape"/>

请根据您的要求决定视图的宽度和高度。

看起来像: