Android:如何用一个颜色来填充自定义矩形的实心边框?

4

我正在使用自定义矩形作为背景:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="20dp"/>
    <padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
    <solid android:color="#FFFFFF"/>
</shape> 

这使我得到了一个很好的卡片形状,但是我希望它周围有一个实心黑色(或其他颜色)的线条。我认为我需要在我的xml中创建一个黑色矩形,它比当前矩形宽高多1点,在上面放置较小的白色矩形。我可以在主xml中使用额外的帧布局来完成这个操作,并在顶部使用两个不同的自定义矩形,但这似乎会过度设计问题。是否有一种方法可以在一个自定义xml背景drawable中完成呢?
谢谢

1
可能是形状XML中的边框的重复问题。 - Janki Gadhiya
2个回答

8
对于边框,您只需要添加一行代码即可:
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="20dp"/>
    <padding android:left="10dp" android:right="10dp" android:top="10dp" android:bottom="10dp"/>
    <solid android:color="#FFFFFF"/>

    //ADD THIS LINE 
    <stroke android:width="1dp" android:color="#000000"/>

</shape> 

5
你需要做类似以下的事情: ```html

你需要这样做:

```
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/transparent" />
        </shape>
    </item>

    <item >
        <shape>
            <solid android:color="@android:color/transparent"/>
            <stroke
                android:width="3dp"
                android:color="#0093dd" >
            </stroke>
        </shape>
    </item>

</layer-list>

您可以将第一项的透明颜色更改为您想要实现的实色。

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