一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Android手勢識別(轉(zhuǎn))

 只要堅持就能成功 2010-11-26
很高興能在Android1.6的sdk看到手勢識別這一功能,之前一直在想,如何在android中實現(xiàn)nds游戲那樣用手勢(準確點應(yīng)該是筆勢)來控制游戲角色?現(xiàn)在總算看到一點曙光了,不過手勢要做到筆勢那樣隨心所欲地控制游戲人物,還有很多細節(jié)問題需要處理。

    在Android1.6的模擬器里面預(yù)裝了一個叫Gestures Builder的程序,這個程序就是讓你創(chuàng)建自己的手勢的(Gestures Builder的源代碼在sdk問samples里面有,有興趣可以看看)。創(chuàng)建的手勢將被保存到/sdcard/gestures里面,把這個文件復(fù)制到你的工程/res/raw下,你就可以在你的工程里面使用這些手勢了。復(fù)制到/res/raw下的手勢是只讀的,也就是說你不能修改或增加手勢了,如果想實現(xiàn)增改的話,可以直接加載sd卡里面的gestures文件。

    在例子中,我創(chuàng)建了這樣的手勢:



第二步:在layout里面創(chuàng)建GestureOverlayView,這個透明的view就是讓你在上面畫手勢用的,可以疊在其他View上面:
  1. <?xml version=”1.0″ encoding=”utf-8″?>
  2. <LinearLayout xmlns:android=”http://schemas./apk/res/android”
  3. android:orientation=”vertical”
  4. android:layout_width=”fill_parent”
  5. android:layout_height=”fill_parent”
  6. >
  7. <TextView
  8. android:layout_width=”fill_parent”
  9. android:layout_height=”wrap_content”
  10. android:text=”@string/hello
  11. />
  12. <android.gesture.GestureOverlayView
  13. android:id=”@+id/gestures”
  14. android:layout_width=”fill_parent”
  15. android:layout_height=”0dip”
  16. android:layout_weight=”1.0″
  17. />
  18. </LinearLayout>
復(fù)制代碼

第三步:載入Gesture:
  1. mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
  2. if (!mLibrary.load()) {
  3. finish();
  4. }
復(fù)制代碼

第四步:增加響應(yīng)函數(shù)OnGesturePerformedListener:
  1. GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
  2. gestures.addOnGesturePerformedListener(this);
復(fù)制代碼


以上四步就可以實現(xiàn)簡單的Gesture識別原型了:

程序運行結(jié)果如下,書寫一個a字,程序識別出,然后toast一個a出來:

完整代碼如下:

  1. package com.ray.test;

  2. import java.util.ArrayList;

  3. import android.app.Activity;
  4. import android.gesture.Gesture;
  5. import android.gesture.GestureLibraries;
  6. import android.gesture.GestureLibrary;
  7. import android.gesture.GestureOverlayView;
  8. import android.gesture.Prediction;
  9. import android.gesture.GestureOverlayView.OnGesturePerformedListener;
  10. import android.os.Bundle;
  11. import android.widget.Toast;

  12. public class TestGesture extends Activity implements OnGesturePerformedListener{

  13. GestureLibrary mLibrary;
  14. @Override
  15. public void onCreate(Bundle savedInstanceState) {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
  19. gestures.addOnGesturePerformedListener(this);
  20. mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
  21. if (!mLibrary.load()) {
  22. finish();
  23. }
  24. }

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

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

  37. }
  38. }
復(fù)制代碼

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    亚洲免费观看一区二区三区| 色哟哟哟在线观看视频| 亚洲欧洲一区二区综合精品| 欧美午夜一级特黄大片| 国产精品欧美一区二区三区不卡 | 丰满熟女少妇一区二区三区| 有坂深雪中文字幕亚洲中文| 老司机精品视频在线免费| 91播色在线免费播放| 蜜桃传媒视频麻豆第一区| 久久精品亚洲精品一区| 国产自拍欧美日韩在线观看| 亚洲国产综合久久天堂| 丁香六月婷婷基地伊人| 大伊香蕉一区二区三区| 加勒比日本欧美在线观看| 国内真实露脸偷拍视频| 成年女人下边潮喷毛片免费| 麻豆91成人国产在线观看| 国产精品一区二区香蕉视频| 91精品日本在线视频| 日韩欧美亚洲综合在线| 扒开腿狂躁女人爽出白浆av| 午夜精品麻豆视频91| 日本加勒比在线播放一区| 欧美一区二区口爆吞精| 成人精品国产亚洲av久久| 精品一区二区三区免费看| 九九久久精品久久久精品| 精品熟女少妇av免费久久野外| 国产乱人伦精品一区二区三区四区| 欧美日韩精品人妻二区三区| 美国女大兵激情豪放视频播放 | 亚洲男人的天堂就去爱| 综合久综合久综合久久| 欧美一区二区三区高潮菊竹| 国产女性精品一区二区三区 | 精品日韩国产高清毛片| 久久99午夜福利视频| 国产日韩欧美国产欧美日韩| 91精品视频免费播放|