Android:XML绘制自定义矩形,实心边框为一种颜色,另一种颜色为填充

时间:2016-06-18 06:29:43

标签: android xml

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

<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中使用framelayout和两个不同的自定义矩形在一个额外的框架布局上执行此操作,这似乎可能会过度设计问题。有没有办法在一个自定义xml背景drawable中执行此操作。

由于

2 个答案:

答案 0 :(得分:6)

对于边框,您只需添加一行:

<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> 

答案 1 :(得分:4)

你必须做这样的事情:

<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>
  

您可以将第一项中的透明色更改为您希望达到的纯色。