可绘制矩形左边框上的垂直可绘制线?
Vertical Drawable Line on Left Border of Drawable Rectangle?
我一直在寻找类似的问题,但我找不到任何我正在寻找的东西。我也一直在搞这个 XML
很长一段时间,我不想导入任何库或使用绘图代码来制作这个方形边框。
如您所见,白色边框后面有一条橙色线。
这是我得到的最接近的结果:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<rotate android:fromDegrees="90">
<shape android:shape="line" android:thickness="3dp">
<padding android:left="120dp"/>
<stroke android:width="3dp" android:color="#F4900A"/>
</shape>
</rotate>
</item>
<item>
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/white"/>
<solid android:color="#00FF0000"/>
<corners android:radius="16dp"/>
</shape>
</item>
<!-- Background is transparent -->
<item>
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="#00000000" />
<solid android:color="#00000000" />
</shape>
</item>
</layer-list>
任何帮助将不胜感激,我觉得我很接近,但我不确定如何在不缩小尺寸的情况下将这条线向左移动?我一直在摆弄填充,它看起来很乱。
注意:我还尝试将白色边框设置为左侧有橙色渐变,但看起来不对 - 所以我认为渐变不是一个选项。
这可以通过以下方式实现:
- 一个普通的矩形作为外白色边框
- 代表左侧线的橙色实心矩形
android:gravity="left"
将其定位在左侧,并根据需要调整填充以将左侧线向右、顶部和底部移动
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/white" />
<corners android:radius="20dp" />
</shape>
</item>
<item
android:bottom="15dp"
android:gravity="left"
android:left="1dp"
android:top="15dp">
<rotate android:fromDegrees="180">
<shape android:shape="rectangle">
<solid android:color="#FF9800" />
<size android:width="3dp" />
</shape>
</rotate>
</item>
</layer-list>
不同 TextView
大小的预览:
我一直在寻找类似的问题,但我找不到任何我正在寻找的东西。我也一直在搞这个 XML
很长一段时间,我不想导入任何库或使用绘图代码来制作这个方形边框。
如您所见,白色边框后面有一条橙色线。
这是我得到的最接近的结果:
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<rotate android:fromDegrees="90">
<shape android:shape="line" android:thickness="3dp">
<padding android:left="120dp"/>
<stroke android:width="3dp" android:color="#F4900A"/>
</shape>
</rotate>
</item>
<item>
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="@color/white"/>
<solid android:color="#00FF0000"/>
<corners android:radius="16dp"/>
</shape>
</item>
<!-- Background is transparent -->
<item>
<shape
android:shape="rectangle">
<stroke android:width="1dp" android:color="#00000000" />
<solid android:color="#00000000" />
</shape>
</item>
</layer-list>
任何帮助将不胜感激,我觉得我很接近,但我不确定如何在不缩小尺寸的情况下将这条线向左移动?我一直在摆弄填充,它看起来很乱。
注意:我还尝试将白色边框设置为左侧有橙色渐变,但看起来不对 - 所以我认为渐变不是一个选项。
这可以通过以下方式实现:
- 一个普通的矩形作为外白色边框
- 代表左侧线的橙色实心矩形
android:gravity="left"
将其定位在左侧,并根据需要调整填充以将左侧线向右、顶部和底部移动
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke
android:width="2dp"
android:color="@color/white" />
<corners android:radius="20dp" />
</shape>
</item>
<item
android:bottom="15dp"
android:gravity="left"
android:left="1dp"
android:top="15dp">
<rotate android:fromDegrees="180">
<shape android:shape="rectangle">
<solid android:color="#FF9800" />
<size android:width="3dp" />
</shape>
</rotate>
</item>
</layer-list>
不同 TextView
大小的预览: