第21页
android:layout_height="wrap_content"
android:id="@+id/imageButton4"
android:src="@drawable/board"
android:layout_toRightOf="@+id/imageButton0"
android:layout_alignTop="@+id/imageButton0" />
(3)在主活动中,获取各ImageView组件代表的按钮,并为各按钮添加单击事件监听器。例如,为“进入”按钮添加单击事件监听器,代码如下:
//为“进入”按钮添加单击事件监听器
ImageView img0=(ImageView)findViewById(R.id.imageButton0);
img0.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "进入游戏", Toast.LENGTH_SHORT).show();
}
});
说明: 为其他按钮添加单击事件监听器的方法与“进入”按钮相同,这里不再赘述。
运行本实例,将显示如图3.14所示的运行结果。
图3.14 布局个性游戏开始界面
3.3 基本组件
教学录像:光盘\TM\lx\3\基本组件.exe
Android应用程序的人机交互界面由很多Android组件组成。例如,在前面两节中使用的TextView和ImageView都是Android提供的组件。本节将对Android提供的基本组件进行详细介绍。
3.3.1 文本框与编辑框
Android中提供了两种文本组件:一种是文本框(TextView),用于在屏幕上显示文本;另一种是编辑框(EditText),用于在屏幕上显示可编辑的文本框。其中,EditText是TextView类的子类。下面分别对文本框和编辑框进行介绍。
1. 文本框
在Android中,文本框使用TextView表示,用于在屏幕上显示文本。与Java中的文本框组件不同,Text View相当于Java中的标签,也就是JLable。需要说明的是,Android中的文本框组件可以显示单行文本,也可以显示多行文本,还可以显示带图像的文本。
在Android中,可以使用两种方法向屏幕中添加文本框:一种是通过在XML布局文件中使用标记添加;另一种是在Java文件中,通过new关键字创建。推荐采用第一种方法,也就是通过标记在XML布局文件中添加文本框,其基本的语法格式如下:
属性列表
>
TextView支持的常用XML属性如表3.5所示。
表3.5 TextView支持的XML属性
XML属性 描 述
android:autoLink 用于指定是否将指定格式的文本转换为可单击的超链接形式,其属性值有none、web、email、phone、map和all
android:drawableBottom 用于在文本框内文本的底端绘制指定图像,该图像可以是放在res\drawable目录下的图片,通过“@drawable/文件名(不包括文件的扩展名)”设置
android:drawableLeft 用于在文本框内文本的左侧绘制指定图像,该图像可以是放在res\drawable目录下的图片,通过“@drawable/文件名(不包括文件的扩展名)”设置
android:drawableRight 用于在文本框内文本的右侧绘制指定图像,该图像可以是放在res\drawable目录下的图片,通过“@drawable/文件名(不包括文件的扩展名)”设置
android:drawableTop 用于在文本框内文本的顶端绘制指定图像,该图像可以是放在res\drawable目录下的图片,通过“@drawable/文件名(不包括文件的扩展名)”设置
android:gravity 用于设置文本框内文本的对齐方式,可选值有top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical和clip_horizontal等。这些属性值也可以同时指定,各属性值之间用竖线隔开。例如,要指定组件靠右下角对齐,可以使用属性值right|bottom
android:hint 用于设置当文本框中文本内容为空时,默认显示的提示文本
android:inputType 用于指定当前文本框显示内容的文本类型,其可选值有textPassword、textEmailAddress、phone和date等,可以同时指定多个,使用“|”分隔
android:singleLine 用于指定该文本框是否为单行模式,其属性值为true或false,为true表示该文本框不会换行,当文本框中的文本超过一行时,其超出的部分将被省略,同时在结尾处添加“…”
android:text 用于指定该文本中显示的文本内容,可以直接在该属性值中指定,也可以通过在strings.xml文件中定义文本常量的方式指定
android:textColor 用于设置文本框内文本的颜色,其属性值可以是#rgb、#argb、#rrggbb或#aarrggbb格式指定的颜色值
android:textSize 用于设置文本框内文本的字体大小,其属性由代表大小的数值和单位组成,其单位可以是px、pt、sp和in等
android:width 用于指定文本的宽度,以像素为单位
android:height 用于指定文本的高度,以像素为单位
说明: 在表3.5中,只给出了TextView组件常用的部分属性,关于该组件的其他属性,可以参阅Android官方提供的API文档。
下面给出一个关于文本框的实例。
例3.11 在Eclipse中创建Android项目,名称为3.11,实现为文本框中的E-mail地址添加超链接、显示带图像的文本、显示不同颜色的单行文本和多行文本。(实例位置:光盘\TM\sl\3\3.11)
(1)修改新建项目的res\layout目录下的布局文件main.xml,为默认添加的LinearLayout垂直线性布局管理器设置背景,并为默认添加的TextView组件设置高度和对其中的E-mail格式的文本设置超链接,修改后的代码如下:
android:orientation="vertical"