只有一个透明边框的形状
Shape with only one transparent border
我想知道如何创建一个只有右边框透明的形状:
+ + + + + + + +
+
+
+
+ + + + + + + +
我想知道我该怎么做。目前我只有代表矩形的基本形状,但从这一点上我不确定是否可以做我想做的事:
<?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>
尝试以下 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>
主要思想是隐藏您不想显示的行。由于您无法在 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>
我想知道如何创建一个只有右边框透明的形状:
+ + + + + + + +
+
+
+
+ + + + + + + +
我想知道我该怎么做。目前我只有代表矩形的基本形状,但从这一点上我不确定是否可以做我想做的事:
<?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>
尝试以下 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>
主要思想是隐藏您不想显示的行。由于您无法在 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>