第81页
library = GestureLibraries.fromRawResource(this, R.raw.gestures); //加载手势文件
et = (EditText) findViewById(R.id.editText);
if (!library.load()) { //如果加载失败则退出
finish();
}
GestureOverlayView gesture = (GestureOverlayView) findViewById(R.id.gestures);
gesture.addOnGesturePerformedListener(this); //增加事件监听器
}
@Override
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
ArrayList gestures = library.recognize(gesture); //获得全部预测结果
int index = 0; //保存当前预测的索引号
double score = 0.0; //保存当前预测的得分
for (int i = 0; i < gestures.size(); i++) { //获得最佳匹配结果
Prediction result = gestures.get(i); //获得一个预测结果
if (result.score > score) {
index = i;
score = result.score;
}
}
String text = et.getText().toString(); //获得编辑框中已经包含的文本
text += gestures.get(index).name; //获得最佳匹配
et.setText(text); //更新编辑框
}
}
运行程序后,绘制手势,如图7.16所示。
图7.16 用户绘制的手势
在手势绘制完成后,显示最佳匹配信息,如图7.17所示。
图7.17 手势对应的字符
7.6 小 结
本章重点介绍了Android中常见的事件处理方式,通过与前面介绍的常用控件结合,就可以实现Android应用程序的外部骨架。本章介绍的内容几乎在各个应用程序中都会使用,请读者务必熟练掌握。
7.7 实践与练习
1. 编写Android程序,显示用户触摸持续的时间。(答案位置:光盘\TM\sl\7\7.8)
2. 编写Android程序,显示用户触摸的位置。(答案位置:光盘\TM\sl\7\7.9)
第8章 资源访问
( 教学录像:2小时56分钟)
Android中的资源是指可以在代码中使用的外部文件,这些文件作为应用程序的一部分,被编译到应用程序中。在Android中,各种资源都被保存到Android应用的res目录下对应的子目录中,这些资源既可以在Java文件中使用,也可以在其他XML资源中使用。本章将对Android中的资源进行详细介绍。
通过阅读本章,您可以:
★ 掌握字符串资源、颜色资源和尺寸资源文件的定义及使用
★ 掌握布局资源
★ 掌握数组资源文件的定义及使用
★ 掌握图片资源和StateListDrawable资源的使用
★ 掌握样式和主题资源的使用
★ 掌握如何通过菜单资源定义上下文菜单和选项菜单
★ 掌握如何对Android程序进行国际化
8.1 字符串(string)资源
教学录像:光盘\TM\lx\8\字符串(string)资源.exe
在Android中,当需要使用大量的字符串作为提示信息时,可以将这些字符串声明在配置文件中,从而实现程序的可配置性。下面对字符串资源进行详细介绍。
8.1.1 定义字符串资源文件
字符串资源文件位于res\values目录下,根元素是 标记,在该元素中,使用标记定义各字符串。其中,通过为标记设置name属性来指定字符串的名称,在起始标记和结束标记中间添加字符串的内容。例如,在Android项目中,创建一个名称为strings.xml的字符串资源文件,在该文件中定义一个名称为introduce的字符串,内容是公司简介,strings.xml的具体代码如下:
明日科技有限公司是一家以计算机软件为核心的高科技企业,多年来始终致力于行业管理软件开发、数字化出版物制作、计算机网络系统综合应用以及行业电子商务网站开发等领域。
说明: 在Android中,资源文件的文件名不能采用大写字母,必须是以小写字母a~z开头,由小写字母a~z、数字0~9或者下划线“_”组成。
8.1.2 使用字符串资源
在字符串资源文件中定义字符串资源后,就可以在Java或XML文件中使用该字符串资源了。在Java文件中使用字符串资源的语法格式如下:
[.]R.string.字符串名
例如,在MainActivity中,要获取名称为introduce的字符串,可以使用下面的代码:
getResources().getString( R.string.introduce )
在XML文件中使用字符串资源的基本语法格式如下:
@[:]string/字符串名
例如,在定义TextView组件时,通过字符串资源为其指定android:text属性的代码如下:
android:layout_width=" wrap_content"
android:layout_height="wrap_content"
android:text="@string/introduce" />
8.2 颜色(color)资源
教学录像:光盘\TM\lx\8\颜色(color)资源.exe
颜色资源也是进行Android应用开发时比较常用的资源,它通常用于设置文字、背景的颜色等。下面对颜色资源进行详细介绍。
8.2.1 颜色值的定义
在Android中,颜色值通过RGB(红、绿、蓝)三原色和一个透明度(Alpha)值表示。它必须以 “#”开头,后面接Alpha-Red-Green-Blue形式的内容。其中,Alpha值可以省略,如果省略,表示颜色默认是完全不透明的。通常情况下,颜色值使用以下4种形式之一。
[√]#RGB:使用红、绿、蓝三原色的值来表示颜色,其中,红、绿和蓝采用0~f来表示。例如,要表示红色,可以使用#f00。
[√]#ARGB:使用透明度以及红、绿、蓝三原色来表示颜色,其中,透明度、红、绿和蓝均采用0~f来表示。例如,要表示半透明的红色,可以使用#6f00。