Android-手勢識別(自訂手勢識別:四種自訂手勢)

來源:互聯網
上載者:User

標籤:ongestureperformedli   gestureoverlayview   gesturebuilder   自訂手勢   android   

1.回顧

  上篇實現:

   (1)OnTouchListener 實現 上下左右手勢識別

   (2)OnTouchListener + SimpleOnGestureListener + GestureDetector 實現 上下左右 手勢識別

2.重點

   (1)GestureOverlayView + GestureLibrary + OnGesturePerformedListener 實現 自訂手勢識別

   (2)demo 下載

3.

                                                           


 4. 基本步驟

   (1)自訂手勢識別檔案

   (2)載入 手勢檔案

   (3)布局實現

   (4)識別/讀取 手勢 

    

5. 自訂手勢檔案   5.1 建立 Android Simple Project 

        以eclipse為例:File  -> New -> Other -> Android -> Android Simple Project ;

                                       

    5.2 Next 選擇安卓版本

                                       

     5.3 Next 選擇 GestureBuilder

                                       

    5.4 finish 

        右擊 運行工程 -> 運行後 點擊 -> add gesture -> 畫上你自己定義的手勢 -> 起個名字(記住 需要使用)-> done ;


           


   5.5 取得 gestrue 手勢檔案

    當點擊done ->  顯示 Toast 提醒 檔案地址 -> 儲存在sdcard 裡,自己匯出即可 ;


6.載入gestrue 手勢檔案

  (1)在  res 檔案夾下 建立 raw 檔案夾;

  (2)複製gesture 到raw 檔案夾下 ;

  (3)在onCreate 裡載入

private GestureLibrary library;

//載入手勢檔案    library=GestureLibraries.fromRawResource(MainActivity.this,R.raw.gestures);library.load();

7. 布局實現

    (1)在 布局檔案中 添加 GestureOverlayView ,可以 將你自己的 控制項 放在 布局裡面;


                                 

    (2)執行個體:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context="${relativePackage}.${activityClass}" >    <android.gesture.GestureOverlayView        android:id="@+id/gestureOverlayView1"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_centerInParent="true"        >                  <ImageView        android:id="@+id/img_test"        android:layout_width="match_parent"        android:layout_height="match_parent"        android:layout_centerInParent="true"          android:layout_gravity="center"        android:src="@drawable/icon_location" />          <TextView              android:id="@+id/textView1"              android:layout_width="wrap_content"              android:layout_height="wrap_content"              android:layout_marginTop="20dp"             android:layout_gravity="center|top"              android:text="沒有滑動"              android:textColor="#0000ff"              android:textSize="25sp" />            </android.gesture.GestureOverlayView></RelativeLayout>


8. 識別手勢

   (1)實現OnGesturePerformedListener 監聽

   

/** * 第三中方式 自訂方式 *  *///設定監聽class gestureOverlayListener implements OnGesturePerformedListener{@Overridepublic void onGesturePerformed(GestureOverlayView overlay,Gesture gesture) {//識別手勢: 通過 library 讀取手勢檔案 ,在這裡讀取ArrayList<Prediction> predictions=library.recognize(gesture);//去第一個就 是 取到的第一個Prediction prediction=predictions.get(0);//提示值String str="沒有改手勢";//更加相似性 來 取得 區間(0.0~10.0 大致區間)if(prediction.score>=5.0){//通過 name 來判斷 值if(prediction.name.equals("error")){str="error:很遺憾,錯的!";img_test.setImageResource(R.drawable.icon_error);}else if(prediction.name.equals("light")){str="light:我是閃電";img_test.setImageResource(R.drawable.icon_light);}else if(prediction.name.equals("none")){str="none :什麼都沒有";img_test.setImageResource(R.drawable.icon_none);}else if(prediction.name.equals("right")){str="true : 恭喜你答對了!";img_test.setImageResource(R.drawable.icon_true);}}    textView1.setText(str);Toast.makeText(MainActivity.this,str,Toast.LENGTH_SHORT).show();}}

    (2)初始化控制項 和 添加監聽

gestureOverlayView1=(GestureOverlayView) findViewById(R.id.gestureOverlayView1);//添加gestureOverlayView1.addOnGesturePerformedListener(new gestureOverlayListener());

9.demo 下載

http://download.csdn.net/detail/lablenet/9063867


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

Android-手勢識別(自訂手勢識別:四種自訂手勢)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.