[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();
}
}
});
}
}
沒有留言:
張貼留言