如何在Android中创建弯曲的底部边框矩形?

and*_*uke 5 android android-xml xml-drawable android-drawable

如何使用xml这样创建具有完美弯曲底部的android drawable:

在此处输入图片说明

我已经尝试过这个xml,但是结果并不完美

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#5f9c63"/>

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

    <corners android:bottomRightRadius="100dp"
        android:bottomLeftRadius="100dp"
        android:topLeftRadius="0dp"
        android:topRightRadius="0dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

任何的想法 ?

谢谢

Asi*_*taq 5

您可以使用如下oval形状。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item
            android:bottom="0dp"
            android:left="-160dp"
            android:right="-160dp"
            android:top="-80dp">
        <shape android:shape="oval">
            <solid android:color="@color/colorPrimary"/>
        </shape>
    </item>
</layer-list>
Run Code Online (Sandbox Code Playgroud)

您可以更改left, right,top值以制作更多或更少的曲线。


Avi*_*Avi 3

我想你正在寻找这样的东西:-

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="48dp"
        android:height="48dp"
        android:viewportHeight="12"
        android:viewportWidth="12">

    <path
        android:fillColor="@android:color/holo_red_light"
        android:pathData="M 2,9 C 2,9 4,10 6,10 C 8,10 10,9 10,9 L 10,0 2,0 2,8"
        android:strokeWidth="0.1"/>

</vector>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

使用最新的 Android 矢量绘图,为您提供更强大的绘图能力和​​更好的结果。您可以逐像素管理绘图。

让我附加多个选项,以便您可以清楚地了解矢量绘图中的小更改可以做什么

<vector xmlns:android="http://schemas.android.com/apk/res/android"
        android:width="48dp"
        android:height="48dp"
        android:viewportHeight="12"
        android:viewportWidth="12">

    <path
        android:fillColor="@android:color/holo_red_light"
        android:pathData="M 2,9 C 2,9.5 4,10 6,10 C 8,10 10,9.5 10,9 L 10,0 2,0 2,8"
        android:strokeWidth="0.1"/>

</vector>
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在第二张图中,您可以看到通过更改较小的值,曲线变得更加圆润。如果您确实想了解矢量绘图,请参阅此处,它将为您提供使用矢量绘图的丰富经验。