Android 手势识别

840427753 贡献于2013-05-21

作者 Windows 用户  创建于2012-11-21 22:01:00   修改者Windows 用户  修改于2012-11-21 22:08:00字数2424

文档摘要:如何在android中实现nds游戏那样用手势(准确点应该是笔势)来控制游戏角色?现在总算看到一点曙光了,不过手势要做到笔势那样随心所欲地控制游戏人物,还有很多细节问题需要处理。
关键词:

Android手势识别 如何在android中实现nds游戏那样用手势(准确点应该是笔势)来控制游戏角色?现在总算看到一点曙光了,不过手势要做到笔势那样随心所欲地控制游戏人物,还有很多细节问题需要处理。      在Android1.6的模拟器里面预装了一个叫GesturesBuilder的程序,这个程序就是让你创建自己的手势的(GesturesBuilder的源代码在sdk问samples里面有,有兴趣可以看看)。创建的手势将被保存到/sdcard/gestures里面,把这个文件复制到你的工程/res/raw下,你就可以在你的工程里面使用这些手势了。复制到/res/raw下的手势是只读的,也就是说你不能修改或增加手势了,如果想实现增改的话,可以直接加载sd卡里面的gestures文件。      在例子中,我创建了这样的手势:      第二步:在layout里面创建GestureOverlayView,这个透明的view就是让你在上面画手势用的,可以叠在其他View上面:                                    第三步:载入Gesture:      mLibrary=GestureLibraries.fromRawResource(this,R.raw.gestures);      if(!mLibrary.load()){      finish();      }      第四步:增加响应函数OnGesturePerformedListener:      GestureOverlayViewgestures=(GestureOverlayView)findViewById(R.id.gestures);      gestures.addOnGesturePerformedListener(this);           以上四步就可以实现简单的Gesture识别原型了:      程序运行结果如下,书写一个a字,程序识别出,然后toast一个a出来:      完整代码如下:      packagecom.ray.test;      importjava.util.ArrayList;      importandroid.app.Activity;      importandroid.gesture.Gesture;      importandroid.gesture.GestureLibraries;      importandroid.gesture.GestureLibrary;      importandroid.gesture.GestureOverlayView;      importandroid.gesture.Prediction;      importandroid.gesture.GestureOverlayView.OnGesturePerformedListener;      importandroid.os.Bundle;      importandroid.widget.Toast;      public class TestGesture extends Activity implements OnGesturePerformedListener{      GestureLibrary mLibrary;      @Override      publicvoidonCreate(BundlesavedInstanceState){      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(GestureOverlayViewoverlay,Gesturegesture){      ArrayList predictions=mLibrary.recognize(gesture);      //Wewantatleastoneprediction      if(predictions.size()>0){      Predictionprediction=(Prediction)predictions.get(0);      //Wewantatleastsomeconfidenceintheresult      if(prediction.score>1.0){      //Showthespell      Toast.makeText(this,prediction.name,Toast.LENGTH_SHORT).show();      }      }      }      }   

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 4 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档