如何使Android EditText文本跟在一个漂亮的蓝色下线

时间:2015-08-02 15:03:05

标签: android text android-edittext

我想要一个如下图所示的EditText: -

enter image description here

请建议怎么做?提前致谢!

更新: -

我使用了Nikita Kurtin的建议。看起来很奇怪。我必须调整背景。我想这个背景需要根据设备的变体进行调整。看看图片现在有什么问题: -

enter image description here

3 个答案:

答案 0 :(得分:1)

我强烈建议您在布局的每一行使用此lib,而不使用帮助文本,浮动标签文本和错误文本。 检查lib: https://github.com/rengwuxian/MaterialEditText

答案 1 :(得分:1)

您可以为线条背景创建一个xml,并将tileMode的属性设置为重复。然后将其用作编辑文本的背景。

xml的示例: asume它被称为'blue_lines.xml'

<?xml version="1.0" encoding="utf-8"?>
<bitmap 
android:src="@drawable/blue_line_bg"
xmlns:android="http://schemas.android.com/apk/res/android"
android:tileMode="repeat"/>

使用它的editText示例:

<EditText 
android:id="@+id/input1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/blue_lines"

 />

enter image description here

Update1 :我使用的蓝线图片 blue line image

Update2 :动态计算字体,调整不同的屏幕

首先:获取blue_line_bg的高度

BitmapFactory.Options options = new BitmapFactory.Options();
    options.inJustDecodeBounds = true;
    BitmapFactory.decodeResource(getResources(), R.drawable.blue_line_bg, options);
    int imageHeight = options.outHeight;
    int padding=10;//inner line padding
    int fontSize=imageHeight-padding;//calculated font size

第二步:将计算出的字体大小添加到相关的editText

((EditText)findViewById(R.id.input1)).setTextSize(fontSize);//set calculated font size to the edit text 

答案 2 :(得分:0)

你必须通过java代码创建你的编辑文本,我之前没有这样做,但https://stackoverflow.com/a/10770670/1384010是一个做同样事情的例子。你需要在代码中做一些改变满足您的实际要求。

希望这会帮助你交配。