亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用GestureOverlayView進行手勢識別

發布時間:2020-03-23 09:36:18 來源:網絡 閱讀:938 作者:許大蟲 欄目:移動開發

    正如之前所說的,使用GestureDetector的識別方法,手勢的種類非常有限,如果需要對復雜的手勢進行識別,就需要GestureOverlayView的方法    

    GestureOverlayView的使用:

  1. 首先使用Gestures Builder程序(下面有附帶文件)生成手勢文件(即自定義一些需要用的手勢,然后取名),如果是模擬機,然后在文件的mnt/sdcard/Download找到gestures文件,把它導出到電腦,然后在GestureOverlayView的項目文件下的layout中新建一個Folder,取名為raw,然后把gestures文件復制粘貼到raw文件下

GestureOverlayView是一種用于手勢輸入的透明覆蓋層,可覆蓋在其他控件的上方,也可包含其它控件

使用的時候,在activity_main的xml布局文件中,在Anvanced分類中就能找到GestureOverlayView控件,然后讓其包裹住需要進行操作的控件

    例子程序如下:

package com.example.gestureoverlayviewdemo;


import java.util.ArrayList;


import android.app.Activity;

import android.app.ActionBar;

import android.app.Fragment;

import android.gesture.Gesture;

import android.gesture.GestureLibraries;

import android.gesture.GestureLibrary;

import android.gesture.GestureOverlayView;

import android.gesture.GestureOverlayView.OnGesturePerformedListener;

import android.gesture.Prediction;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.Menu;

import android.view.MenuItem;

import android.view.View;

import android.view.ViewGroup;

import android.widget.Toast;

import android.os.Build;


public class MainActivity extends Activity {

private GestureOverlayView gestureOverlayView;


@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

gestureOverlayView = (GestureOverlayView) findViewById(R.id.gestureOverlayView1);

/**

* 找到剛才預設定的手勢文件

* 加載那個手勢文件中的所有手勢

* 匹配,識別

*/

//從資源中將手勢庫文件加載進來

final GestureLibrary  library= GestureLibraries.fromRawResource(MainActivity.this, R.raw.gestures);

library.load();

/**

* GestureOverlayView.OnGestureListener    手勢監聽器

* GestureOverlayView.OnGesturePerformedListener   手勢執行監聽器

* GestureOverlayView.OnGesturingListener 手勢執行中監聽器

*/

gestureOverlayView.addOnGesturePerformedListener(new OnGesturePerformedListener() {

/**

* GestureOverlayView的一些常見的XML屬性設置,設置在xml中

* 1.Android:eventsInterceptionEnabled 定義當手勢已經被識別出來時,是否攔截該手勢動作

* 2.Android:fadeDuration    當用戶畫完手勢效果淡出的時間

* 3.Android:fadeEnabled     當用戶畫完之后手勢是否自動淡出

* 4.Android:gestureColor 手勢的顏色

* 5.Android:gestureStrokeType 筆畫的類型(單筆畫或者多筆畫)

* 6.Android:gestureStrokeWidth;

*/

@Override

public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {

//讀出手勢庫中的內容   識別手勢

ArrayList<Prediction> mygesture = library.recognize(gesture);//返回值是一個Prediction泛型的集合

Prediction prediction= mygesture.get(0);//每次都會從零開始拿跟輸入的手勢進行比對

//Prediction有兩個返回值,一個是name,一個是score相似度值,自已定義

if(prediction.score>=3.0){

if(prediction.name.equals("exit")){

finish();//程序退出

}

if(prediction.name.equals("next")){

Toast.makeText(MainActivity.this, "播放下一首歌", Toast.LENGTH_SHORT).show();


}

if(prediction.name.equals("previous")){

Toast.makeText(MainActivity.this, "播放上一首歌", Toast.LENGTH_SHORT).show();

}

}else{

Toast.makeText(MainActivity.this, "沒有該手勢", Toast.LENGTH_SHORT).show();

}

}

});

}

}



<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:id="@+id/container"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    tools:context="com.example.gestureoverlayviewdemo.MainActivity"

    tools:ignore="MergeRootFrame" >

    <android.gesture.GestureOverlayView

        android:id="@+id/gestureOverlayView1"

        android:layout_width="400px"

        android:layout_height="400px"

        android:gestureColor="#FF0000"

        android:gestureStrokeWidth="2"

        android:gestureStrokeType="multiple"

         >


    <ImageView

        android:id="@+id/p_w_picpathView1"

        android:layout_width="400px"

        android:layout_height="300px"

        android:layout_alignParentTop="true"

        android:layout_centerHorizontal="true"

        android:src="@drawable/ic_launcher" />


    </android.gesture.GestureOverlayView>


</RelativeLayout>


附件:http://down.51cto.com/data/2368062
向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

榆树市| 吉木乃县| 昭平县| 滦平县| 陇西县| 万全县| 奎屯市| 全州县| 万荣县| 谷城县| 河西区| 望奎县| 毕节市| 大洼县| 惠安县| 沈丘县| 西峡县| 德保县| 怀化市| 济源市| 广宁县| 始兴县| 南岸区| 长岛县| 武鸣县| 安徽省| 景德镇市| 日照市| 德安县| 虎林市| 南开区| 合川市| 郯城县| 庆阳市| 文成县| 新河县| 那坡县| 巢湖市| 陕西省| 邹城市| 神池县|