Skip to content

TextView简介

本文介绍TextView的使用。介绍一些常用的属性。

TextView

文字,是我们传达信息的一种常见方式。在安卓应用上显示文字,我们通常使用TextView。 之前我们已经知道如何获取到layout中的TextView,也知道setText()方法可以修改显示的文字。

结合我们实际的生活和学习经验,写字的时候,有哪些方面是可以由我们来控制的? 文本内容;文字颜色;大小;背景等等。

最简单的TextView。

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

得益于as强大的提示功能,我们在layout中输入<Te的时候,as可能就弹出了提示。

自动补全提示

回车或者鼠标双击TextView即可。

这里关注两个基本属性layout_widthlayout_height。分别表示TextView的宽度和高度设置。 实际上这两个属性是View的属性。TextView继承自View。宽高属性是基础属性,是必须设置的。

宽和高属性

layout_width/layout_height 可以填入wrap_contentmatch_parent或者具体的数值。

wrap_content 表示控件宽/高度可由内容来决定。对于TextView,文字越长,它的宽度越宽,直到父view(上层容器)允许的最大宽/高度。

match_parent 表示控件宽/高度达到父view允许的最大值。通俗说就是把空间撑满。

当然我们也可以输入具体数值。比如80dp。 dp是安卓中的一种单位,通常用来规定控件的宽高,间隔距离等等。我们都知道市面上有很多很多很多种安卓手机。各个手机屏幕大小和分辨率可能都有差别。例如有小米手机和华为手机,它们的屏幕大小和分辨率都不一样。我们给TextView设置宽度为100dp后,在两个手机的屏幕上,它的物理宽度是差不多的。

类似的,表示文字大小的单位,安卓里用sp

显示文字

显示文字,可能是TextView最主要的用法了。在layout中设置文字,使用text属性。

    <TextView
        android:id="@+id/tv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="2020年的Android新手教程。突出一个简单明了,上手快。 - RustFisher" />

    <TextView
        android:id="@+id/sample_tv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name" />

这里涉及到一个代码风格的问题。上面分别给TextView设置了id。有的人喜欢驼峰风格的,例如sampleTv。笔者个人喜欢在layout中使用小写字母加下划线的风格。今后一般都是这样的风格。

我们可以看到,设置text有多种方式。可以直接把内容写进去(hard code),也可以使用string资源。 直接写内容,as会给一个黄色的警告,建议用户换用@string资源的方式。鼠标移上去as就可以看到as的警告了。

若要使用@string资源,我们先看另一个xml文件,即strings.xml。它在res/values里面。

<string name="app_name">Tutorial2020</string>

资源命名风格也是小写字母加下划线。

res里面的很多资源,我们可以都可以用R...来找到。

前面我们提到,可以使用TextView的setText方法来设置文字内容,例如setText("123")。 也可以传入文字资源的名称(编号),类似setText(R.string.app_name)。 需要注意的是,R.string.app_name本身是一个int数字,TextView会根据这个编号去找对应的资源。 如果这样调用setText(123),大概率会报下面的这个错误。

android.content.res.Resources$NotFoundException: String resource ID #0x0
    at android.content.res.Resources.getText(Resources.java:360)

文字设置

一般来说,我们会设置TextView文字的颜色,背景等等。

  • textColor 设置字体颜色
  • textSize 设置字体大小
  • textStyle 设置字体样式

以下是示例:

示例文字1

示例文字2

看到颜色设置那里,我们可以鼠标点击一下那个小色块,as会弹出一个颜色选择器。这个选择器还是很方便的。

选择颜色

间距设置

margin和padding其实是View的属性。这里我们拿TextView来看一下。

间距

以后想显示一些文字的时候,我们首先会想起的是TextView。

工程放这里: https://github.com/AnRFDev/Tutorial2020