作者:韩亚飞_yue31313_韩梦飞沙 QQ:313134555
第一节、 Android扩展知识
一、知识概括
1、手势识别
2、UI的纯代码编写
3、样式主题
二、知识总结
1、Android下的手势识别
第一步:建立手势库
使用SDK自带例子GestureBuilder建立手势库(位置:android-sdk-windows\samples\android-8\GestureBuilder)。使用GestureBuilder之前,你需要恢复其到开发环境,然后进行编绎并部署到手机上。此时,就可以使用GestureBuilder建立手势库,生成的手势库文件在SCDard上,默认文件名称为:gestures
第二步:在应用中加载手势库文件,然后开发手势识别代码。
把手势库文件gestures文件拷贝到项目的res/raw目录下。然后在布局文件中添加用于手势绘制的View:
<android.gesture.GestureOverlayView
android:id="@+id/gestures"
android:layout_width="fill_parent“ android:layout_height="0dip"
android:layout_weight="1.0" />
为View添加手势监听事件:
单笔画事件监听gestureOverlayView.addOnGesturePerformedListener();
多笔画事件监听gestureOverlayView.addOnGestureListener();
得到手势库:mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
加载手势库:mLibrary.load();
获取相似的手势的库:ArrayList<Prediction> predictions =mLibrary.recognize(gesture);
获取最相似的手势:Prediction prediction = predictions.get(0);
获取手势名称:prediction .name
大多数情况下,手势都是通过一笔完成。然而有一些特别的需求就需要通过多个笔画来实现,这时可以使用gestureStrokeType属性进行设置:android:gestureStrokeType="multiple"
关键代码:
// 把已经定义好的手势 转化成一个手势库
GestureLibrarymLibrary = GestureLibraries.fromRawResource(
DemoActivity.this,R.raw.gestures);
// 把手势库加载到内存
mLibrary.load();
ArrayList<Prediction> predictions =mLibrary.recognize(gesture);
Predictionprediction = predictions.get(0);
if(prediction.score >= 5) {
if("close".equals(prediction.name)) {
System.out.println("关闭的操作 ");
finish();
} else if("call".equals(prediction.name)) {
System.out.println("拨打电话 ");
Intentintent = new Intent();
intent.setAction(Intent.ACTION_CALL);
intent.setData(Uri.parse("tel:5556"));
startActivity(intent);
} elseif("exit".equals(prediction.name)){
finish();}
} else {
System.out.println("手势不能被识别 ");}
2、程序的国际化
1、语言国际化
建立values目录values目录要有特定的指向。
在对应的目录下建立调用的xml,指定的文件名要相同。的语言方式
例如: values-zh 中国
values-en 美国
在两个目录下都创建strings.xml的文件,在对应的目录文件中分别指定下面的内容。
<stringname="hello">Hello World, DemoA