可绘制矩形左边框上的垂直可绘制线?

Posted

技术标签:

【中文标题】可绘制矩形左边框上的垂直可绘制线?【英文标题】:Vertical Drawable Line on Left Border of Drawable Rectangle? 【发布时间】:2021-12-18 23:57:12 【问题描述】:

我一直在寻找类似的问题,但我找不到任何我正在寻找的东西。我也一直在搞这个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: android:color="#F4900A"/>
            </shape>
        </rotate>
    </item>
<item>
    <shape
        android:shape="rectangle">
        <stroke android: android:color="@color/white"/>
        <solid android:color="#00FF0000"/>
        <corners android:radius="16dp"/>
    </shape>
</item>
<!-- Background is transparent -->
<item>
    <shape
        android:shape="rectangle">
        <stroke android: android:color="#00000000" />
        <solid android:color="#00000000" />
    </shape>
</item>
</layer-list> 

任何帮助将不胜感激,我觉得我很接近,但我不确定如何将这条线向左移动而不缩小它的大小?我一直在搞乱填充,它看起来很卡。

注意:我还尝试将白色边框设置为左侧有橙色渐变,但它看起来不正确 - 所以我不认为渐变是一种选择。

【问题讨论】:

【参考方案1】:

这可以通过以下方式实现:

一个普通的矩形作为外部白色边框 一个橙色实心矩形表示左线,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:
                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: />
            </shape>
        </rotate>

    </item>


</layer-list>

不同TextView大小的预览:

【讨论】:

以上是关于可绘制矩形左边框上的垂直可绘制线?的主要内容,如果未能解决你的问题,请参考以下文章

使用 XML 可绘制的垂直线

OpenCV 例程200篇211. 绘制垂直矩形

OpenCV 例程200篇211. 绘制垂直矩形

Android自定义View实现可拖拽的进度条

绘制垂直于给定线的线

R语言使用forestplot包绘制森林图:编码创建森林图仿真数据汇总线修改元素位置调整垂直线字体风格置信区间线型图例刻度标签等