3

我试图在 XML 中实现这样的 ShapeDrawable,但到目前为止没有成功。

在此处输入图像描述

如何使 Stroke 仅在两侧可见?

这甚至可能吗?

否则我使用什么云(我将它作为 TextView 的背景播种)。

4

2 回答 2

7

这是一个使用 a 的解决方案LayerListDrawable

background_white_lateral_border.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >

    <item>
        <shape android:shape="rectangle" >
            <solid android:color="@android:color/white" />
        </shape>
    </item>

    <item>
        <inset
            android:insetLeft="1dp"
            android:insetRight="1dp" >
            <shape android:shape="rectangle" >
                <solid android:color="@android:color/black" />
            </shape>
        </inset>
    </item>

</layer-list>

注意:这首先绘制一个白色矩形,然后绘制一个黑色矩形,在它的顶部左右插入1dp,给出横向边框的效果。这只是要记住的事情,以防您担心性能(在我看来,这对于像这样的次要样式可以忽略不计)。

于 2013-10-14T18:42:56.973 回答
1

AFAIK,这对于单个ShapeDrawable. 不过,九个补丁 PNG 或LayerListDrawable两个ShapeDrawables(每行一个)应该可以工作。

于 2013-10-14T15:12:17.853 回答