Android基础总结.doc(第八节、 Android扩展知识)

作者:韩亚飞_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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yue31313

感谢打赏,继续分享,给您帮忙。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值