乐趣区

Android控件之TextView全解析

前言

大家好!在前几篇文章里,我们详细介绍了 Android 中的常用布局,使大家对 Android 中的页面布局有了一定认识,而对于布局中使用的一些 UI 控件如 ButtonTextView 等,有的读者可能还存在一些困惑。在接下来文章中,我们将详细介绍 Android 开发中经常使用的 UI 控件,敬请期待!

简介

TextView(文本框),是 Android 中用于显示文本的一个控件。

常用属性详解

  • id:为 TextView 设置一个组件 id,根据 id,我们可以在 Java 代码中通过 findViewById() 的方法获取到该对象,然后进行相关属性的设置。
  • layout_width:控件的宽度,可以写成 wrap_contentmatch_parent,前者是宽度自适应(控件中显示的内容多大,控件就多大),而后者宽度会填满该控件所在的父容器;也可以设置成特定的大小,如上 200dp。
  • layout_height:组件的宽度,内容同上。
  • gravity:设置控件中内容的位置,如上 center 表示居中。
  • text:设置显示的文本内容,一般我们是把字符串写到 string.xml 文件中,然后通过 @String/xxx 取得对应的字符串内容的,可避免图上黄色警告。
  • textColor:设置字体颜色,同上,也需通过 colors.xml 资源来引用。
  • textStyle:设置字体风格,三个可选值:normal(无效果),bold(加粗),italic(斜体)。
  • textSize:字体大小,单位用sp
  • backgroud:控件的背景颜色,填充整个控件,也可以是图片或者 drawable 资源文件。

实际开发示例

1. 带图片的 TextView

  • drawableXxx:可以设置四个方向的图片:drawableTop(上),drawableButtom(下),drawableStart(左),drawableEnd(右) 另外,你也可以使用 drawablePadding 来设置图片与文字间的间距。

2. 带阴影的 TextView

  • shadowColor:设置阴影颜色,需要与 shadowRadius 一起使用。
  • shadowRadius:设置阴影的模糊程度。
  • shadowDx:设置阴影在水平方向的偏移,即水平方向阴影开始的横坐标位置。
  • shadowDy:设置阴影在竖直方向的偏移,即竖直方向阴影开始的纵坐标位置。

3. 带边框的 TextView

  • background="@drawable/bg_text":编写一个 ShapeDrawable 的资源文件,放在 res 下的 drawable 目录下。
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <!-- 填充色 -->
    <solid android:color="#03A9F4" />
    <!-- 描边及描边尺寸 -->
    <stroke
        android:width="8dp"
        android:color="#FF5722" />
    <!-- 圆角尺寸, 四个角相同可直接使用 android:radius-->
    <corners
        android:bottomLeftRadius="12dp"
        android:bottomRightRadius="12dp"
        android:topLeftRadius="8dp"
        android:topRightRadius="8dp" />
</shape>

属性大全

上面只是简单介绍了 TextView 中一些常用的使用方法,在 TextView 中,其属性还有很多。下面详细列举 TextViewXML中各种属性,供大家 参考查阅

android:text:设置显示文本内容。

android:textColor:设置文本颜色。

android:textSize:设置文字字体大小,单位sp

android:hint:Text 为空时显示的文字提示信息,可通过 textColorHint 设置提示信息的颜色。

android:textColorHint:设置提示信息文字的颜色,默认为灰色,与 hint 一起使用。

android:textStyle:设置字体风格,三个可选值:normal(无效果),bold(加粗),italic(斜体)。

android:typeface:设置文本字体,必须是以下常量值之一:normal 0、sans 1、serif 2、monospace(等宽字体) 3。

android:maxWidth:置文本区域的最大宽度。

android:minWidth:设置文本区域的最小宽度。

android:maxHeight:设置文本区域的最大高度。

android:minHeight:设置文本区域的最小高度。

android:textScaleX:设置文字之间间隔,默认为 1.0f。

android:autoLink:设置是否当文本为 URL 链接 /email/ 电话号码 /map 时,文本显示为可点击的链接。可选值(none/web/email/phone/map/all)。

android:autoText:如果设置,将自动执行输入值的拼写纠正,在显示输入法并输入的时候起作用。

android:capitalize:设置英文字母大写类型,需要弹出输入法才能看得到。

android:digits:设置允许输入哪些字符。如“1234567890.+-*/%n()’‘。

android:drawableXxx:在 text 的 Xxx 方向输出一个 drawable,如图片。

android:drawablePadding:设置 text 与 drawable(图片)的间隔,与 drawableLeftdrawableRightdrawableTopdrawableBottom 一起使用,可设置为负数,单独使用没有效果。

android:ellipsize:设置当文字过长时, 该控件该如何显示。有如下值设置:”start”—–省略号显示在开头;”end”——省略号显示在结尾;”middle”—- 省略号显示在中间;”marquee”——以跑马灯的方式显示(动画横向移动)。

android:freezesText:设置保存文本的内容以及光标的位置。

android:gravity:设置文本位置,如设置成“center”,文本将居中显示。

android:includeFontPadding:设置文本是否包含顶部和底部额外空白,默认为 true。

android:inputMethod:为文本指定输入法,需要完全限定名(完整的包名)。

android:inputType:设置文本的类型,用于帮助输入法显示合适的键盘类型。

android:marqueeRepeatLimit:在 ellipsize 指定 marquee 的情况下,设置重复滚动的次数,当设置为 marquee_forever 时表示无限次。

android:ems:设置 TextView 的宽度为 N 个字符的宽度。

android:maxEms:设置 TextView 的宽度为最长为 N 个字符的宽度。与 ems 同时使用时覆盖 ems 选项。

android:minEms:设置 TextView 的宽度为最短为 N 个字符的宽度。与 ems 同时使用时覆盖 ems 选项。

android:maxLength:限制显示的文本长度,超出部分不显示。

android:lines:设置文本的行数,设置两行就显示两行,即使第二行没有数据。

android:singleLine:设置单行显示。如果和 layout_width 一起使用,当文本不能全部显示时,后面用“…”来表示。

android:maxLines:设置文本的最大显示行数,与 width 或者 layout_width 结合使用,超出部分自动换行,超出行数将不显示。

android:minLines:设置文本的最小行数,与 lines 类似。

android:linksClickable:设置链接是否点击连接,即使设置了autoLink

android:lineSpacingExtra:设置行间距。

android:lineSpacingMultiplier:设置行间距的倍数。如”1.2”。

android:scrollHorizontally:设置文本超出 TextView 的宽度的情况下,是否出现横拉条。

android:shadowColor:指定文本阴影的颜色,需要与 shadowRadius 一起使用。

android:shadowRadius:设置阴影的半径,太小了无效果。

android:shadowDx:设置阴影横向坐标开始位置。

android:shadowDy:设置阴影纵向坐标开始位置。

结语

以上就是 Android 中最常用的 UI 控件 TextView 的介绍,开发示例中只列举了几种最常用的使用方式。在接下来的几篇文章中,还会有其他更加精彩的AndroidUI 控件的介绍,敬请期待!

PS: 如果还有未看懂的小伙伴,欢迎加入我们的 QQ 技术交流群:892271582,里面有各种大神回答小伙伴们遇到的问题哦~

退出移动版