Android TextView 与 EditText 的区别与使用

1,495 阅读3分钟

一、简介

  • TextView 继承 View,作用就是在界面上显示文本(类似于 iOS 中的 UILabel),同时它还是 EditTextButton 两个 UI 组件类的父类。

  • 另外 Android 关闭了它的文字编辑功能,如果想编辑内容,则可以使用 EditText

二、TextView

  • TextView 常用属性

    属性含义
    idTextView 设置一个组件 id,根据 id,可以在 Java 代码中通过findViewById() 的方法获取到该对象,然后进行相关属性的设置。
    layout_width组件宽度
    layout_height组件高度
    text设置显示的文本内容,通常是把字符串写到 res/values/strings.xml 文件中, 然后通过 @string/xxx 取得对应的字符串内容。
    textSize字体大小,单位一般是用 sp
    textColor设置字体颜色,同上,通过 res/values/colors.xml 资源来引用(使用:@color/xxx
    textStyle设置字体风格,三个可选值: normal(无效果)、bold(加粗)、 italic(斜体)。
    autoLink识别链接类型:webemailphonemapnoneall
    lines最大行数
    minLines最小行数
    ellipsize内容超出的时候,省略显示方式。start:省略号在开头 "...dzm"end:省略号在结尾 "dzm..."middle:省略号在中间 "dzm...xyq"marquee:跑马灯(实现跑马灯,必须让该控件获得焦点)
    gravity设置组件中内容的对齐方向,TextView 中是文字,ImageView 中是图片等等,它可以控制内容在组件中多个方位对齐内容:上下左右中
    textAlignment设置组件中内容的对齐方向,只能 居中居左居右
    background控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片。
    shadowColor阴影颜色
    shadowDx阴影 x 方向位移
    shadowDy阴影 y 方向位移
    shadowRadius阴影的半径,也可以算作是模糊度。
  • 案例代码

    <!-- TextView -->
    <TextView
        android:id="@+id/dzm"
        android:layout_width="300dp"
        android:layout_height="300dp"
        android:text="@string/app_name"
        android:textSize="50sp"
        android:textColor="#f11"
        android:textStyle="bold"
        android:autoLink="email"
        android:lines="2"
        android:minLines="2"
        android:ellipsize="start"
        android:gravity="top"
        android:textAlignment="textEnd"
        android:background="@drawable/shape_text"
        android:shadowColor="#cff"
        android:shadowDx="0"
        android:shadowDy="50"
        android:shadowRadius="20"
        tools:ignore="RtlCompat" />
    

    image.png

三、EditText

  • EditText 特有属性,同时支持上面 TextView 属性使用。

    属性含义
    hint默认提示文本
    textColorHint默认提示文本颜色
    textColorHighlight被选中文字的底色,默认为蓝色
    selectAllOnFocus布尔值,点击输入框获得焦点后,获取到输入框中所有的文本内容。
    inputType键盘类型,对输入的数据进行限制。
    minLines最小行数
    maxLines最大行数
    singleLine设置单行输入,一旦设置为 true,则文字不会自动换行。
    textScaleX控制字与字之间的间距
    capitalizesentences:仅第一个字母大写。words:每一个单词首字母大小,用空格区分单词。characters:每一个英文字母都大写。
    numeric设置只能输入整数,如果是小数则是:decimal
    gray="top"多行中指针在第一行第一位置
    typeface设置字型 normalsansserifmonospace
    autoText自动拼写帮助
    freezesText设置保存文本的内容以及光标的位置
    inputMethod为文本指定输入法,需要完全限定名(完整的包名) eg:com.huwei.xxxim
    textCursorDrawable设置光标颜色
    et.setSelection(et.length())设置调整光标位置到最后一行
    et.requestFocus()请求获取焦点,低版本会自动弹出键盘,稍微高点的版本则需要手动去弹出键盘
    et.clearFocus()清除焦点
  • 案例代码

    // 获取到编辑框
    EditText et = (EditText)findViewById(R.id.dzm);
    // 获取焦点
    et.requestFocus();
    // 设置光标位置
    et.setSelection(2);
    

    image.png