2019年1月7日 星期一

[Android]_ch3.4_GestureOverlayView元件介紹1


[Android]_ch3.4_GestureOverlayView元件介紹
歡迎訂閱頻道:杜仲教學YouTube https://www.youtube.com/channel/UCElw... 杜仲教學部落格: https://derekcctu.blogspot.com/






n建立手勢資料庫
n在模擬器上執行Gestures Builder應用程式
n建立手勢並命名會產生手勢資料庫檔案(檔名為gestures),儲存在SD卡內
n使用DDMS將手勢資料庫檔案拷貝至指定應用程式的res/raw目錄即可用來比對使用者手勢
n新增GestureOverlayView元件之後使用者會在上畫出手勢
nGestureOverlayView元件呼叫addOnGesturePerformedListener()OnGesturePerformedListener註冊並實作onGesturePerformed()
n當使用者畫出手勢時, onGesturePerformed()會自動被呼叫並執行



package com.derek.ch7_gesture;



import java.util.ArrayList;



import android.R.integer;

import android.app.Activity;

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.Menu;

import android.view.MenuItem;

import android.widget.TextView;

import android.widget.Toast;





public class MainActivity extends Activity {

GestureOverlayView gv;

TextView tv1;

GestureLibrary gl;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        tv1=(TextView)findViewById(R.id.textView1);

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

        gl=GestureLibraries.fromRawResource(MainActivity.this, R.raw.gestures);

        if(!gl.load())

        finish();

        gv.addOnGesturePerformedListener(new OnGesturePerformedListener() {

@Override

public void onGesturePerformed(GestureOverlayView overlay, Gesture usr) {

ArrayList<Prediction> list=gl.recognize(usr);

if(list.size()>0){

StringBuilder sb=new StringBuilder("共"+list.size()+"筆--比對結果如下:\n");

for(int i=0;i<list.size();i++){

Prediction p=list.get(i);

String name=p.name;

double score=p.score;

sb.append("第"+(i+1)+"筆:name="+name+" score="+score+"\n");

}

tv1.setText(sb);

}else{

Toast.makeText(MainActivity.this, "沒有任何比對資料!",Toast.LENGTH_SHORT).show();

}



}

});

    }

}


沒有留言:

張貼留言

Ether.fi Cash Card 一張所有人必備的加密貨幣信用卡   [Ether.fi Cash Card] : https://www.ether.fi/app/cash/sign-up?ref_code=d27f8523 ------國際交易所------ [Bitg...