歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux編程 >> Linux編程

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();

得到手勢庫:mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);

加載手勢庫:mLibrary.load();

List<Prediction> predictions = mLibrary.recognize(gesture);//從手勢庫中查詢匹配的內容,匹配的結果可能包括多個相似的內容,匹配度高的結果放在最前面

大多數情況下,手勢都是通過一筆完成。然而有一些特別的需求就需要通過多個筆畫來實現,這時可以使用gestureStrokeType屬性進行設置:android:gestureStrokeType="multiple"

String文件

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <resources>  
  3.   
  4.     <string name="app_name">GestureTest</string>  
  5.     <string name="notrecognize">不能識別該手勢</string>  
  6.     <string name="noprediction">手勢識別率太低,請重新輸入</string>  
  7.   
  8. </resources>  

布局文件

  1. <?xml version="1.0" encoding="utf-8"?>  
  2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  3.     android:layout_width="fill_parent"  
  4.     android:layout_height="fill_parent"  
  5.     android:orientation="vertical" >  
  6.   
  7.     <android.gesture.GestureOverlayView   
  8.         android:id="@+id/myGestureView"  
  9.         android:layout_width="fill_parent"  
  10.         android:layout_height="0dip"  
  11.         android:layout_weight="1.0"  
  12.         />  
  13.   
  14. </LinearLayout>  
Copyright © Linux教程網 All Rights Reserved