仅具有一个透明边框的形状

时间:2015-08-19 12:30:11

标签: android drawable shape

我试图找出如何创建一个只有右边框透明的形状:

+ + + + + + + +
+
+
+
+ + + + + + + +

我想知道我该怎么做。目前我的基本形状代表一个矩形,但从这一点来说,我不确定它是否可以做我想做的事情:

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

    <solid android:color="#07000000" /> <!-- Transparent background -->


    <corners
        android:topLeftRadius="10dp"
        android:bottomLeftRadius="10dp" />
    <stroke
        android:width="2dp"
        android:color="@android:color/white" />
</shape>

2 个答案:

答案 0 :(得分:3)

主要想法就是隐藏你不想表现的那条线。由于您无法在shape本身内指定它,因此必须使用layer-list并定义负填充以移动矩形,使右侧超出界限。最好是将所有角都弄圆,因为并非所有角都可见。试试这段代码:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:right="-10dp">
        <shape android:shape="rectangle">
            <solid android:color="#07000000" />

            <corners android:radius="10dp" />

            <stroke
                android:width="2dp"
                android:color="@android:color/white"/>
        </shape>
    </item>
</layer-list>

答案 1 :(得分:0)

试试下面的xml -

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
    <shape android:shape="rectangle">
        <solid android:color="#FF0000" />
    </shape>
</item>
<item android:left="5dp">
    <shape android:shape="rectangle">
        <solid android:color="#000000" />
    </shape>
</item>
</layer-list>