第3章Android用户界面设计3.1 用户界面组件包widget和View类
1.用户界面组件包widget
Android系统为开发人员提供了丰富多彩的用户界面组件,通过使用这些组件可以设计出炫丽的界面。大多数用户界面组件放置在android.widget包中。widget包中的常用组件如表3-1所示。表3-1 widget包中的常用组件 可视化组件说
明Button按钮 CalendarView日历视图 CheckBox复选框 EditText文本编辑框 ImageView显示图像或图标,并提供缩放、着色等各种图像处理方法 ListView列表框视图MapView地图视图RadioGroup单选按钮组 Spinner下拉列表TextView文本标签WebView网页浏览器视图 Toast消息提示
2.View类
View是用户界面组件的共同父类,几乎所有的用户界面组件都是继承View类实现的,如TextView、Button、EditText等。
对于View类及其子类的属性,可以在界面布局文件中设置,也可以通过成员方法在Java代码文件中动态设置。View类的常用属性和方法如表3-2所示。 表3-2 View类的常用属性和方法属
性对 应 方 法说
明android:backgroundsetBackgroundColor (int color)设置背景颜色android:idsetId(int)为组件设置可通过findViewById方法获取的标识符续表属
性对 应 方 法说
明android:alphasetAlpha(float)设置透明度,取值范围为0~1findViewById(int id)与id所对应的组件建立关联android:visibilitysetVisibility(int)设置组件的可见性android:clickablesetClickable(boolean)设置组件是否响应单击事件3.2 文本标签与按钮3.2.1 文本标签
文本标签(TextView)用于显示文本内容,是很常用的组件之一。其常用方法见表3-3。表3-3 文本标签(TextView)常用方法方
法功
能getText();获取文本标签的文本内容setText(CharSequence text);设置文本标签的文本内容setTextSize(float);设置文本标签的文本大小setTextColor(int color);设置文本标签的文本颜色
其常用的XML文件元素属性见表3-4。表3-4 文本标签(TextView)常用的XML文件元素属性元 素 属 性说
明android:id文本标签标识android:layout_width文本标签(TextView)的宽度,通常取值"fill_parent"(屏幕宽度)或以像素为单位pt的固定值android:layout_height文本标签(TextView)的高度,通常取值"wrap_content"(文本的高)或以像素px为单位的固定值android:text文本标签(TextView)的文本内容android:textSize文本标签(TextView)的文本大小
【例3-1】设计一个文本标签组件程序。
创建名为Ex03_01的新项目,包名为com.ex03_01。打开系统自动生成的项目框架,需要设计的文件为:* 界面布局文件activity_main.xml;* 控制文件MainActivity.java;* 资源文件strings.xml。
(1)设计界面布局文件activity_main.xml。在界面布局文件activity_main.xml中加入文本标签TextView,设置文本标签组件的id属性,如图3.1所示。
activity_main.xml代码如下:
1
2
6
11
图3.1 在界面布局中设置文本标签
(2)设计控制文件MainActivity.java。在控制文件MainActivity.java中添加文本标签组件,并将界面布局文件中所定义的文本标签元素属性值赋给文本标签,与界面布局文件中的文本标签建立关联。程序代码如下:
1 package com.ex03_01;
2 import android.app.Activity;
3 import android.os.Bundle;
4 import android.graphics.Color;
5 import android.widget.TextView;
6
7 public class MainActivity extends Activity
8 {
9
private TextView txt;
10 public void onCreate(Bundle savedInstanceState)
11 {
12
super.onCreate(savedInstanceState);
13
setContentView(R.layout.activity_main);
14
txt=(TextView)findViewById(R.id.textView1);
15
txt.setTextColor(Color.WHITE);
16 }
17 }
(3)设计资源文件strings.xml。修改资源文件strings.xml中属性为"hello"的元素项的文本内容:
1 <?xml version="1.0" encoding="utf-8"?>
2
3
\n
荷塘月色
4
\n 剪一段时光缓缓流淌,
5
\n 流进了月色中微微荡漾,
6
\n 弹一首小荷淡淡的香,
7
\n 美丽的琴音就落在我身旁.
8
9
Ex03_01
10
保存项目,配置应用程序的运行参数。程序的运行结果如图3.2所示。图3.2 文本标签3.2.2 按钮
按钮(Button)用于处理人机交互事件,在一般应用程序中经常会用到。由于按钮是文本标签(TextView)的子类,其继承关系如图3.3所示。按钮继承了文本标签的所有方法和属性。
按钮在程序设计中很常用的方式是实现OnClickListener监听接口,当单击按钮时,通过OnClickListener监听接口触发onClick()事件,实现用户需要的功能。OnClickListener接口有一个onClick()方法,在按钮实现OnClickListener接口时,一定要重写这个方法。
按钮调用OnClickListener接口对象的方法如下:
按钮对象.setOnClickListener(OnClickListener对象);
【例3-2】编写程序,实现单击按钮页面标题及文本标签的文字内容发生变化的功能,如图3.4所示。
单击按钮前
单击按钮后图3.4 单击按钮后,文本标签的文字内容发生变化
创建名为Ex03_02的新项目,包名为com.ex03_02。
(1)设计界面布局文件activity_main.xml。在界面布局文件中添加一个按钮,将其id设置为button1。其代码如下:
1 <?xml version="1.0" encoding="utf-8"?>
2
6
11
16
(2)设计控制文件MainActivity.java。在控制文件MainActivity.java中设计一个实现按钮监听接口的内部类mClick,当单击按钮时,触发onClick()事件。其代码如下:
1 package com.ex03_02;
2 import android.app.Activity;
3 import android.os.Bundle;
4 import android.view.View;
5 import android.view.View.OnClickListener;
6 import android.widget.TextView;
7 import android.widget.Button;
8
9 public class MainActivity extends Activity
10 {
11
private TextView txt;
12
private Button btn;
13
public void onCreate(Bundle savedInstanceState)
14
{
15
super.onCreate(savedInstanceState);
16
setContentView(R.layout.activity_main);
17
txt=(TextView) findViewById(R.id.textView1);
18
btn=(Button)findViewById(R.id.button1);
19
btn.setOnClickListener(new mClick());
20
}
21
class mClick implements OnClickListener
22
{
23
public void onClick(View v)
24
{
25
MainActivity.this.setTitle("改变标题");
26
txt.setText(R.string.newStr);
27
}
28
}
29 }
(3)设计资源文件strings.xml,其代码如下:
1 <?xml version="1.0" encoding="utf-8"?>
2
3
Hello World, 这是Ex03_02的界面!
4
Ex03_02
5
单击我!
6
改变了文本标签的内容
7
【例?3-3】编写程序,实现单击按钮改变文本标签的文字及背景颜色的功能,如图?3.5所示。显示全部>>隐藏全部>>