如何在形状xml中的笔划两侧制作圆角

Posted

技术标签:

【中文标题】如何在形状xml中的笔划两侧制作圆角【英文标题】:How to make round corner in both sides of stroke in shape xml 【发布时间】:2018-08-09 11:15:08 【问题描述】:

我试图创建一个像这样的形状:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
  <corners android:radius="0.5dp"></corners>
  <stroke
    android:
    android:color="@color/mycolor"/>
  <solid android:color="@color/transparent"></solid>
</shape>

这是我得到的:

我可以把内角做成圆形作为外边框(现在是正方形)吗?

【问题讨论】:

【参考方案1】:

您的代码进行了一些更改,您的输出已准备就绪:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:radius="30dp"></corners> <!-- change this -->
    <stroke
        android:
        android:color="@color/black"/>
</shape>

输出:

【讨论】:

你是对的。我发现我需要使角大于笔划。【参考方案2】:

试试这个

<?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="#000000" />
            <corners android:radius="40dp" />
        </shape>
    </item>
</layer-list>

输出:-

【讨论】:

【参考方案3】:

试试这个, abc.xml

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:bottom="-10dp"
        android:left="-10dp"
        android:right="-10dp"
        android:top="-10dp">
        <shape android:shape="rectangle">
            <stroke
                android:
                android:color="#ffffff" />
            <corners android:radius="20dp" />
        </shape>
    </item>
</layer-list>

layout.xml

android:background="@drawable/abc"

【讨论】:

以上是关于如何在形状xml中的笔划两侧制作圆角的主要内容,如果未能解决你的问题,请参考以下文章

如何将 SVG 剪辑到笔划内部?

如何在android中创建形状三角形

如何在 Canvas 中制作药丸形状? (基本上是圆角矩形)

如何制作左上圆角和左下圆角的形状?

如何在android中使用XML布局为图像视图中的图像制作圆角

做两个圆角和两个直切而不是颤动中的曲线