一起Talk Android吧(第三百零四回:EditText的其它常用属性)

 

 

各位看官们,大家好,上一回中咱们说的是Android中EditText限制输入的例子,这一回咱们说的例子是EditText的其它常用属性。闲话休提,言归正转。让我们一起Talk Android吧!

 


看官们,本章回中我们将介绍EditText的其它常用属性,主要是控制字体大小和设置背景这两个属性,接下来我们详细介绍它们。


控制字体大小


我们通常使用textSize属性控制字体大小,这点和TextView一样,因为EditText从父类TextView哪里继承了此属性。例如:android:textSize="12sp"表示输入的字体大小为12sp.

属性中控制字体大小是静态的,也就是说在页面显示前就已经固定了字体的大小,页面显示后不能去修改,如果想要修改怎么办?可以在代码中使用setTextSize()方法动态控制字体的大小,在实际项目中大部分情况下使用静态方法,遇到某种特殊情况时可以使用动态方法去调整。


该控件还有一个hint属性用来提示用户输入相关内容,提示内容的文字大小也是通过textSize属性来控制,不过官方没有提供动态控制hint字体大小的方法,只提供了一个修改字体颜色的方法:setHintTextColor(),毕竟默认的字体颜色是灰色,不够醒目。


大家现在看到了,控件中输入文字的字体大小和提示内容(hint)的字体大小是受textSize属性统一控制的,如果想让二者不一致怎么办?答案是在资源中单独控制提示文字的大小.例如:
 

android:hint="@string/hint_text" 

<string name="hint_text"><font size="24"> not empty </font></string>

表示提示文字内容为not empty,大小为24sp。此时提示文字的大小与输入文字的大小不一样。

 

设置背景


设置背景使用background属性,这里说的背景是指输入框后面的背景,系统默认的输入框背景是白色的,同时在最下方加一条灰色下划线,常用的做法是把此属性值设置为空(android:background="@null"),这样可以去掉输入框下面的下划线。也可以在drawable中自定义一条直线,然后把此直线设置为background的属性值,下面是一个示例,示例中定义了一条宽度为2sp的红色直线,并且把它应用到控件中,这样输入框中下划线就从默认的灰色变成了红色:

//自定义的直线
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="line">
    <stroke
        android:width="2sp"
        android:color="@android:color/holo_red_dark">
    </stroke>
</shape>
//把直线设置为EditText的背景
    <EditText
        android:background="@drawable/edit_text_underline"
        android:layout_width="match_parent"
        android:layout_height="32dp">
    </EditText>


如果只是修改输入框中下划线的颜色,还有另外一种方式:使用backgroundTint属性,例如:

android:backgroundTint="@color/colorRed"


也可以把输入框中下划线的颜色修改为红色,而且显示效果几乎和默认效果相同。不过这种方式比drawable中自定义的直线灵活性差一些,因为drawable中除了控制颜色外还可以控制直线的形状(直线或者虚线)、直线的粗细等细节。


各位看官,关于Android中EditText常用属性的例子咱们就介绍到这里,欲知后面还有什么例子,且听下回分解!

Guess you like

Origin blog.csdn.net/talk_8/article/details/120255123