【问题标题】:android- How to get borders like thisandroid-如何获得这样的边框
【发布时间】:2015-01-02 14:07:53
【问题描述】:
这是我想要的编辑文本:
这是我目前得到的:
两个问题:
如您所见,顶部边框应该小得多。
我在代码上设置了填充,但正如您所见,它不起作用。文本位于编辑文本的顶部。如何使其居中对齐并位于edittext的中间?
这是我的可绘制 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>
【问题讨论】:
标签:
android
android-drawable
android-styles
【解决方案1】:
要减小顶部边框的大小,您可以尝试使用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。
要在边框边缘放置“填充”,请尝试设置 layout_margin。
<EditText
...
android:background="@drawable/ourDrawable"
android:text="text goes here"
android:gravity="center"
android:layout_margin="5dp" />