Android Gesture 手势识别使用实例 - Android - mobile - ITeye论坛
生活随笔
收集整理的這篇文章主要介紹了
Android Gesture 手势识别使用实例 - Android - mobile - ITeye论坛
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Android Gesture 手勢識別使用實例 - Android - mobile - ITeye論壇
主題:Android Gesture 手勢識別使用實例精華帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隱藏帖 (0)作者 正文
??? raymondlueng
??? 等級: 一鉆會員
??? raymondlueng的博客
??? 性別: [男]
??? 文章: 125
??? 積分: 980
??? 來自: 廣州
?? 發表時間:2009-10-20?
< > 獵頭職位: 陜西: 西安:senior java engineer
相關文章:?
??? gesture手勢相關操作
??? 玩轉Android---事件監聽篇---第2篇
??? 手寫輸入法學習
推薦群組: Android
更多相關推薦
Android
??? 很高興能在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代碼? 收藏代碼
??? <?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:
Java代碼? 收藏代碼
??? mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);?
??? if (!mLibrary.load()) {?
??????? finish();?
??? }?
?第四步:增加響應函數OnGesturePerformedListener:
Java代碼? 收藏代碼
??? GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);?
??? gestures.addOnGesturePerformedListener(this);?
?以上四步就可以實現簡單的Gesture識別原型了:
程序運行結果如下,書寫一個a字,程序識別出,然后toast一個a出來:
完整代碼如下:
Java代碼? 收藏代碼
??? 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();?
??????????????? }?
??????????? }?
?????????????
??????? }?
??? }?
?文章參考了android博客上面的這篇文章:
http://feedproxy.google.com/~r/blogspot/hsDu/~3/Rrgh3YnIqig/gestures-on-android-16.html
聲明:ITeye文章版權屬于作者,受法律保護。沒有作者書面許可不得轉載。
總結
以上是生活随笔為你收集整理的Android Gesture 手势识别使用实例 - Android - mobile - ITeye论坛的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Sierpinski镂垫
- 下一篇: VC6工程目录下的文件说明