`
feng_home
  • 浏览: 34944 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

Android1.6手势识别

阅读更多



 很高兴能在Android1.6的sdk看到手势识别这一功能,之前一直在想,如何在android中实现nds游戏那样用手势(准确点应该是笔势)来控制游戏角色?现在总算看到一点曙光了,不过手势要做到笔势那样随心所欲地控制游戏人物,还有很多细节问题需要处理。

    在Android1.6的模拟器里面预装了一个叫Gestures Builder的程序,这个程序就是让你创建自己的手势的(Gestures Builder的源代码在sdk问samples里面有,有兴趣可以看看)。创建的手势将被保存到/sdcard/gestures里面,把这个文件复制到你的工程/res/raw下,你就可以在你的工程里面使用这些手势了。复制到/res/raw下的手势是只读的,也就是说你不能修改或增加手势了,如果想实现增改的话,可以直接加载sd卡里面的gestures文件。

    在例子中,我创建了这样的手势:

第二步:在layout里面创建GestureOverlayView,这个透明的view就是让你在上面画手势用的,可以叠在其他View上面:

 <?xml version=”1.0″ encoding=”utf-8″?>
<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android
    android:orientation=”vertical”
    android:layout_width=”fill_parent”
    android:layout_height=”fill_parent”
    >
<TextView 
    android:layout_width=”fill_parent”
    android:layout_height=”wrap_content”
    android:text=”@string/hello”
    />
<android.gesture.GestureOverlayView
    android:id=”@+id/gestures”
    android:layout_width=”fill_parent”
    android:layout_height=”0dip”
    android:layout_weight=”1.0″
    />
</LinearLayout>

第三步:载入Gesture:

mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
        if (!mLibrary.load()) {
            finish();
        }

第四步:增加响应函数OnGesturePerformedListener

GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
        gestures.addOnGesturePerformedListener(this);

以上四步就可以实现简单的Gesture识别原型了:

程序运行结果如下,书写一个a字,程序识别出,然后toast一个a出来:

完整代码如下:

package com.ray.test;

import java.util.ArrayList;

import android.app.Activity;
import android.gesture.Gesture;
import android.gesture.GestureLibraries;
import android.gesture.GestureLibrary;
import android.gesture.GestureOverlayView;
import android.gesture.Prediction;
import android.gesture.GestureOverlayView.OnGesturePerformedListener;
import android.os.Bundle;
import android.widget.Toast;

public class TestGesture extends Activity implements OnGesturePerformedListener{

 GestureLibrary mLibrary;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
        gestures.addOnGesturePerformedListener(this);
        mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
        if (!mLibrary.load()) {
            finish();
        }
    }

 @Override
 public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
  ArrayList predictions = mLibrary.recognize(gesture);

     // We want at least one prediction
     if (predictions.size() > 0) {
         Prediction prediction = (Prediction) predictions.get(0);
         // We want at least some confidence in the result
         if (prediction.score > 1.0) {
             // Show the spell
             Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show();
         }
     }
  
 }
}

 

  • 大小: 10.3 KB
  • 大小: 6.9 KB
分享到:
评论
1 楼 zzhui1988 2011-01-07  
请教怎么改变轨迹颜色?

相关推荐

    Android输入法手势识别例子代码.rar

    Android输入法手势识别例子代码,android.gesture这个类在api-4(SDK1.6)才开始支持的!默认存到SD卡中,所以别忘记在AndroidMainfest.xml加上SD卡读写权限!测试时请您在紧凑的时间内用两笔划来完成一个手势!  ...

    Android手机输入法手势识别源代码

     输入法手势识别  注意: android.gesture这个类在api-4(SDK1.6)才开始支持的!  提醒:默认存到SD卡中,所以别忘记在AndroidMainfest.xml加上SD卡读写权限!  关于两种方式创建模拟器的SDcard在【Android2D...

    Android实现Gesture手势识别用法分析

    很高兴能在Android1.6的sdk看到手势识别这一功能,之前一直在想,如何在android中实现nds游戏那样用手势(准确点应该是笔势)来控制游戏角色?现在总算看到一点曙光了,不过手势要做到笔势那样随心所欲地控制游戏...

    Android View进行手势识别详解

     很多网友发现Android中手势识别提供了两个类,由于Android 1.6以下的版本比如cupcake中无法使用android.view.GestureDetector,而android.gesture.Gesture是Android 1.6开始支持的,考虑到仍然有使用Android 1.5...

    View中如何进行手势识别onFling动作实现介绍

    很多网友发现Android中手势识别提供了两个类,由于Android 1.6以下的版本比如cupcake中无法使用android.view.GestureDetector,而 android.gesture.Gesture是Android 1.6开始支持的,考虑到仍然有使用Android 1.5...

    手机输入法手势识别源代码.zip

    手机输入法手势识别源代码输入法手势识别 注意: android.gesture这个类在api-4(SDK1.6)才开始支持的! 提醒:默认存到SD卡中,所以别忘记在AndroidMainfest.xml加上SD卡读写权限! 关于两种方式创建模拟器的...

    手机输入法手势识别源代码

    手机输入法手势识别源代码输入法手势识别 注意: android.gesture这个类在api-4(SDK1.6)才开始支持的! 提醒:默认存到SD卡中,所以别忘记在AndroidMainfest.xml加上SD卡读写权限! 关于两种方式创建模拟器的...

    疯狂Android讲义源码

     1.6 Android应用的基本组件  介绍 31  1.6.1 Activity和View 31  1.6.2 Service 32  1.6.3 BroadcastReceiver 32  1.6.4 ContentProvider 32  1.6.5 Intent和IntentFilter 33  1.7 本章小结 33  第2章 ...

    疯狂Android讲义.part2

    1.6 Android应用的基本组件 介绍 31 1.6.1 Activity和View 31 1.6.2 Service 32 1.6.3 BroadcastReceiver 32 1.6.4 ContentProvider 32 1.6.5 Intent和IntentFilter 33 1.7 本章小结 33 第2章 Android应用的界面编程...

    疯狂Android讲义.part1

    1.6 Android应用的基本组件 介绍 31 1.6.1 Activity和View 31 1.6.2 Service 32 1.6.3 BroadcastReceiver 32 1.6.4 ContentProvider 32 1.6.5 Intent和IntentFilter 33 1.7 本章小结 33 第2章 Android应用的界面编程...

Global site tag (gtag.js) - Google Analytics