android- 如何获得这样的边框

android- How to get borders like this

这是我想要的编辑文本:

这是我目前得到的:

两期:

  1. 如您所见,上边框应该小得多。

  2. 我在代码上设置了填充,但如您所见,它不起作用。文本位于编辑文本的顶部。我怎样才能使它居中对齐并位于编辑文本的中间?

这是我的可绘制对象xml:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:padding="15dp"
    android:shape="rectangle" >

    <solid android:color="#3C1251" />

    <corners
        android:bottomLeftRadius="5dp"
        android:bottomRightRadius="5dp"
        android:topLeftRadius="5dp"
        android:topRightRadius="5dp" />

    <stroke
            android:width="2.3dp"
            android:color="#56DEF1" />

</shape>

要减小上边框的大小,您可以尝试使用 inset 将整个可绘制对象向上移动一两个像素。

例如,对于 1dp 的顶部边框,您可以将描边宽度设置为 3,并将 insetTop 设置为 -2。

<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:insetTop="-2dp">

    <shape
        android:padding="15dp"
        android:shape="rectangle" >

        <solid android:color="#3C1251" />

        <corners
            android:bottomLeftRadius="5dp"
            android:bottomRightRadius="5dp"
            android:topLeftRadius="5dp"
            android:topRightRadius="5dp" />

        <stroke
            android:width="3dp"
            android:color="#56DEF1" />
    </shape>
</inset>

要将文本居中对齐,请尝试将 EditText 上的 android:gravity 设置为 center。 要将 "padding" 放在边框边缘,请尝试设置 layout_margin.

<EditText
    ...
    android:background="@drawable/ourDrawable"
    android:text="text goes here"
    android:gravity="center"
    android:layout_margin="5dp" />