歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> Android手勢識別

Android手勢識別

日期:2017/3/1 10:41:00   编辑:Linux編程

第一步:建立手勢庫

使用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. <string name="app_name">GestureTest</string>
  4. <string name="notrecognize">不能識別該手勢</string>
  5. <string name="noprediction">手勢識別率太低,請重新輸入</string>
  6. </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. <android.gesture.GestureOverlayView
  7. android:id="@+id/myGestureView"
  8. android:layout_width="fill_parent"
  9. android:layout_height="0dip"
  10. android:layout_weight="1.0"
  11. />
  12. </LinearLayout>
Copyright © Linux教程網 All Rights Reserved