首页 > 代码库 > §2.1 最常用的控件------文本框(TextView)

§2.1 最常用的控件------文本框(TextView)

文本框TextView是我们在安卓应用的界面开发中经常用到的一个控件,同时,它也是输入框(EditText)和按钮(Button)的父类 (输入框和按钮后面章节会有介绍)

作用:在页面上显示文字。

我们重新来看第一章节的那个“Hello World应用”。 在layout/activity_main.xml布局文件代码如下:

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:tools="http://schemas.android.com/tools"
 4     android:id="@+id/activity_main"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     android:paddingBottom="@dimen/activity_vertical_margin"
 8     android:paddingLeft="@dimen/activity_horizontal_margin"
 9     android:paddingRight="@dimen/activity_horizontal_margin"
10     android:paddingTop="@dimen/activity_vertical_margin"
11     tools:context="com.rongma.helloworld.MainActivity">
12 
13     <TextView
14         android:layout_width="wrap_content"
15         android:layout_height="wrap_content"
16         android:text="Hello World!" />
17 </RelativeLayout>

我们可以看到,在布局文件代码中,存在一个TextView节点,这个TextView就是用来在页面上显示文字内容的。

android:text用于设置文字内容,此处的属性值为"Hello World",所以在手机上显示的内容也就是“Hello World”。 如果把android:text的值改为其他的字符串,那么手机上也会显示相应的文字内容。

除了android:text之外,还要为大家介绍几个常用的控件属性:

  • android:background 这个属性用于设置控件的背景,此处可以设置背景图片,也可以设置背景颜色。

还是以“Hello World”应用程序为例,我们对TextView控件设置如下属性:

1 <TextView
2         android:layout_width="wrap_content"
3         android:layout_height="wrap_content"
4         android:text="Hello World!" 
5         android:background="#00ffff"
6 />

运行程序,将会看到如下效果:

技术分享

即,"Hello World!"文本新增了一个背景颜色。 
同样的,我们也可以将图片资源导入到drawable文件夹下(例如,导入一个bg.png),此时,将android:background值设置为 android:background="@drawable/bg"。则”Hello World“字符串的背景将被设置为bg.png图片

  • android:layout_width 这个属性用于设置控件的宽度
  • android:layout_height 这个属性用于设置控件的高度
    android:layout_height和android:layout_width的属性值分三种:
    第一种:wrap_content,从字面意义上理解,为包裹内容。即这个控件的大小随着内容的变化而变化。在本案例中,TextView的大小将随着文本的内容大小而改变。
    第二种:match_parent , 这种属性值为填充窗体,即这个控件的宽(或高),和父窗体的大小保持一致。
    第三种:实际数值,比如200dp
    此处介绍一个新的长度单位:dp,设备独立元素,一种基于屏幕密度的抽象单位,随着屏幕密度的改变,dp与像素之间的换算会发生改变. 也就是说,当一个控件的宽高被设置dp作为长度单位时,这个控件的宽高将随着手机屏幕分辨率的变化而自适应

我们对"Hello World"中的TextView控件进行设置:

1 <TextView
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="Hello World!" 
5         android:background="#00ffff"
6  />

运行程序:

技术分享

我们可以看到,由于我们设置了android:layout_width="match_parent" android:layout_height="wrap_content",所以运行结果中文本框的宽度变为填充整个窗体,高度为包裹内容。

  • android:textSize 用于设置文字的大小
    在这里要介绍一个新的长度单位 sp,这个单位用于Android应用程序中的文字大小。可以根据用户的字体大小首选项进行相对应的缩放。

  • android:textColor 用于设置文字颜色

此处,我们将“Hello World”应用程序中的TextView设置文字大小和颜色

1 <TextView
2         android:layout_width="match_parent"
3         android:layout_height="wrap_content"
4         android:text="Hello World!" 
5         android:background="#00ffff"
6         android:textColor="#ffff00"
7         android:textSize="32sp"
8 />

运行结果:

技术分享

我们可以看到,文字的大小和颜色均发生了改变。

android:id 用于设置控件的id,即唯一标识(类似身份证)

id的使用方法:

1.在xml布局文件中,设置id值 android:id="@+id/tv_hw"

2. 在MainActivity.java文件中,对这个控件进行操作:

 1 public class MainActivity extends Activity {
 2     private TextView mTvContent;  //1. 定义一个TextView对象
 3     @Override
 4     protected void onCreate(Bundle savedInstanceState) {
 5         super.onCreate(savedInstanceState);
 6         setContentView(R.layout.activity_main);
 7         mTvContent = (TextView) findViewById(R.id.tv_hw); //2.将这个TextView对象通过findViewById与xml布局文件中的id相关联
 8         mTvContent.setText("你好,安卓!"); //3.通过调用这个方法,我们可以设置TextView要显示的内容。
 9     }
10 }

(1) private TextVIew mTvContent 创建一个变量,是TextView类型的。
(2) mTvContent = (TextView) findViewById(R.id.tv_hw); 将这个TextView对象通过findViewById方法,与xml布局文件中id值为tv_hw的控件相关联,并强制类型转换为TextView类型
(3)此处是通过Java代码对TextView进行操作。 mTvContent.setText("你好,安卓!");
运行结果:

技术分享

经常看到一些书上,大篇幅的介绍Android控件的属性。关于这种现象,我的观点是,只需要记住几个常用的属性即可。我们在开发过程中,如果有涉及到其他属性时,我们可以通过Google等搜索引擎进行查询。 同理,对于Java代码操作控件也是一样的,我们只需要记住常用的几个方法即可。 比如,在上面的案例中,我们使用了setText来设置TextView要显示的文字。那么,如果某一天,我们的需求是设置文字颜色时。我们可以在搜索引擎中进行查询,最终获得结果:要调用setTextColor方法 死记硬背属性和方法,是最傻的一种学习方式,我们只需要掌握其中的“套路”即可!

§2.1 最常用的控件------文本框(TextView)