15.2.2 TextView组件
在前面介绍的移动开心网的登录界面已经使用过TextView组件,但只涉及了TextView组件非常初级的用法。TextView组件的功能远不止显示文本这么简单,在本节将更进一步介绍TextView组件的功能。
TextView组件的基本用法在前面已经多次接触到了,下面再来回顾一下。TextView组件使用<TextView>标签定义,下面的代码是TextView组件最基本的用法。
- < TextView android:id = "@+id/textview1"
android:layout_width = "fill_parent"- android:layout_height = "wrap_content"
android:text = "可以在这里设置TextView组件的文本" />
上面的代码表示TextView的宽度应尽可能充满TextView组件所在的容器。将高度设为wrap_content,表示TextView组件的高度需要根据组件中文本的行数、字体大小等因素决定。
当然,还可以对TextView组件进行更复杂的设置,例如,设置TextView组件的文字字体大小、文字颜色、背景颜色、文本距 TextView组件边缘的距离、TextView组件距其他组件的距离等。下面的代码包含了3个<TextView>标签,这3个标签设置 了上述的TextView组件的相应属性。
- <? xml version = "1.0" encoding = "utf-8" ?>
- < LinearLayout xmlns:android = "http://schemas.
android.com/apk/res/android"- android:orientation = "vertical" android:
layout_width = "fill_parent"- android:layout_height = "fill_parent" >
- < TextView android:id = "@+id/textview1"
android:layout_width = "fill_parent"- android:layout_height = "wrap_content"
android:textColor = "#0000FF"- android:background = "#FFFFFF" android:
text = "可以在这里设置TextView组件的文本" />- < TextView android:id = "@+id/textview2"
android:layout_width = "fill_parent"- android:layout_height = "wrap_content"
android:text = "更复杂的设置"- android:textSize = "20dp" android:textColor = "#FF00FF"
- android:background = "#FFFFFF" android:
padding = "30dp" android:layout_margin = "30dp" />- < TextView android:id = "@+id/textview3"
android:layout_width = "fill_parent"- android:layout_height = "wrap_content"
android:textColor = "#FF0000"- android:background = "#FFFFFF" android:
text = "可以在这里设置TextView组件的文本" />- </ LinearLayout >
上面代码中大多数属性的含义从字面上就可以猜出来,但要注意两个属性:android: padding和android:layout_margin,其中android:padding属性用于设置文字距TextView组件边缘的距 离,android:layout_margin属性用于设置TextView组件距离相邻其他组件的距离。这两个属性设置的都是四个方向的距离,也就是 上、下、左、右的距离。如果要单独设置这四个方向的距离,可以使用其他的属性,这些属性名字的规则是在这两个属性后面添加Left、Right、Top和 Bottom,例如,设置TextView组件距离左侧的组件的距离,可以使用android: layout_marginLeft属性。
要注意的是,由于第2个<TextView>标签的android:layout_width属性值是fill_parent,因此, 文字距TextView组件右侧的距离并不是android:padding属性的值。系统会优先使用android:layout_width属性的值 来设置TextView组件到右侧组件(这里是屏幕的右边缘)的距离。
除了可以在XML布局文件中设置TextView组件的属性外,还可以在代码中设置TextView组件的属性(实际上,所有的组件都可以采用这两种方式设置它们的属性)。例如,下面的代码设置了文本的颜色。
- TextView textView = (TextView) findViewById(R.id.textview4);
- textView.setTextColor(android.graphics.
Color.RED); // 使用实际的颜色值设置字体颜色
设置TextView组件背景色的方法有3个,这些方法如下。
setBackgroundResource:通过颜色资源ID设置背景色。
setBackgroundColor:通过颜色值设置背景色。
setBackgroundDrawable:通过Drawable对象设置背景色。
下面的代码分别演示了如何用这3个方法来设置TextView组件的背景色。
使用setBackgroundResource方法设置背景色:
- textView.setBackgroundResource(R.color.background);
使用setBackgroundColor方法设置背景色:
- textView.setBackgroundColor(android.graphics.Color.RED);
使用setBackgroundDrawable方法设置背景色:
- Resources resources = getBaseContext ().getResources();
- Drawable drawable = resources .getDrawable(R.color.background);
- textView.setBackgroundDrawable(drawable);