android - 顶部带有描边的圆角矩形 android 可绘制 XML

标签 android xml drawable android-drawable xml-drawable

我试图在android中使用XML制作一个drawable。要求是我需要有一个圆角矩形(所有 4 个角都是圆角),仅在顶部边缘具有 7dp 高度的笔画。我为此使用以下 XML:

<?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="5dp" android:color="@color/theme_color" />
            <solid android:color="@color/theme_color" />
            <corners
                android:radius="7dp"/>
            <padding android:top="7dp"/>
        </shape>
    </item>

    <item>
        <shape
            android:shape="rectangle">
            <stroke android:width="1dp" android:color="@color/designer_cell_background" />
            <solid android:color="@color/designer_cell_background" />
            <corners
                android:radius="7dp"
                android:topRightRadius="0dp"
                android:topLeftRadius="0dp"/>
            <padding android:bottom="1dp"/>
        </shape>
    </item>
</layer-list>

我的工作几乎没问题,只是右下角和左下角不是圆角。

问题 - 1:如何将底角变成圆角?

问题 - 2:这是实现我真正想要的目标的正确方法吗?有没有更好的办法?我问这个是因为,我知道我在这里所做的实际上是制作两个矩形,一个在另一个之上,第二个矩形从第一个矩形的顶部边缘稍微降低,以便第一个矩形的颜色显示为线在第二条线的上面。然后分别为每个矩形添加圆角半径。我认为这不是正确的解决方案。但是当我尝试在圆角矩形的顶部添加 7dp 宽度的笔画时,我失败了。我给出的笔划出现在所有边缘上。

编辑

这是我想要的:

Expected Output

这就是我目前得到的:

Actual Output

最佳答案

        <stroke
            android:width="1dp"
            android:color="#FFFFFF" />

        <solid android:color="#ffffff" />

        <padding
                android:left="0dp"
                android:right="0dp"
                android:top="0dp" />

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

    </shape>

使用半径值增加曲线形状会增加

关于android - 顶部带有描边的圆角矩形 android 可绘制 XML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24710440/

相关文章:

c++ - 使用QT进行XML解析

android,可绘制资源加载到内存?

android - 减少 Android 替代绘图资源

android - Android 4.2.2 是否支持 USB 蓝牙加密狗?

android - Zxing不扫描一维条码不显示红线

android - 在 Android 中,如何创建 Material 设计文档指定的轮廓下拉菜单(微调器)?

.NET XmlSerializer 和对同一对象的多个引用

java - 发送电子邮件的问题 sendgrid

android - 如何以编程方式放大/缩小 WebView 的内容?

android - 使用内置的 Android 图像查看器打开存储在 res/drawable 中的图片