AndroidはGestureジェスチャーの識別用法の分析を実現します。
本論文の例は,AndroidがGestureジェスチャー識別の使用法を実現することを解析した。皆さんの参考にしてください。具体的には以下の通りです
Android d 1.6のsdkでジェスチャー認識という機能を見ることができてとても嬉しいです。どうやってアンディランドのゲームのようにジェスチャー(正確な点は筆勢)でゲームのキャラクターをコントロールするか?今はやっと曙光が見えてきましたが、手振りは筆勢のようにゲームのキャラクターを自在にコントロールします。細かい問題もたくさんあります。
Android d 1.6のシミュレータにGestures Builderというプログラムをプリインストールしました。このプログラムは自分のジェスチャーを作成させます。作成したジェスチャーは/sdcard/gesturesに保存されます。このファイルをあなたのプロジェクト/res/rawにコピーして、あなたはあなたのプロジェクトの中でこれらのジェスチャーを使うことができます。レプリカ/res/rawにコピーしたジェスチャーは読み取り専用です。つまりジェスチャーを修正または追加することはできません。もし変更を実現したいなら、直接にsdカードの中のgesturesファイルを読み込むことができます。
例では、このようなジェスチャーを作成しました。
第二ステップ:layoutの中でGestureOverlayViewを作成しました。この透明なviewは上にジェスチャーを描かせます。他のViewの上に畳むことができます。
プログラムの実行結果は次の通りです。a字を書いてプログラムが認識され、そしてtoastはaが出てきます。
完全コードは以下の通りです。
ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。
Android d 1.6のsdkでジェスチャー認識という機能を見ることができてとても嬉しいです。どうやってアンディランドのゲームのようにジェスチャー(正確な点は筆勢)でゲームのキャラクターをコントロールするか?今はやっと曙光が見えてきましたが、手振りは筆勢のようにゲームのキャラクターを自在にコントロールします。細かい問題もたくさんあります。
Android d 1.6のシミュレータにGestures Builderというプログラムをプリインストールしました。このプログラムは自分のジェスチャーを作成させます。作成したジェスチャーは/sdcard/gesturesに保存されます。このファイルをあなたのプロジェクト/res/rawにコピーして、あなたはあなたのプロジェクトの中でこれらのジェスチャーを使うことができます。レプリカ/res/rawにコピーしたジェスチャーは読み取り専用です。つまりジェスチャーを修正または追加することはできません。もし変更を実現したいなら、直接にsdカードの中のgesturesファイルを読み込むことができます。
例では、このようなジェスチャーを作成しました。
第二ステップ:layoutの中でGestureOverlayViewを作成しました。この透明なviewは上にジェスチャーを描かせます。他のViewの上に畳むことができます。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<android.gesture.GestureOverlayView
android:id="@+id/gestures"
android:layout_width="fill_parent"
android:layout_height="0dip"
android:layout_weight="1.0"
/>
</LinearLayout>
ステップ3:Gestureをロードする:
mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
if (!mLibrary.load()) {
finish();
}
ステップ4:応答関数OnGesturePerformedListenerを追加します。
GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
gestures.addOnGesturePerformedListener(this);
以上の4ステップで簡単なGestureのプロトタイプを識別できます。プログラムの実行結果は次の通りです。a字を書いてプログラムが認識され、そしてtoastはaが出てきます。
完全コードは以下の通りです。
package com.ray.test;
import java.util.ArrayList;
import android.app.Activity;
import android.gesture.Gesture;
import android.gesture.GestureLibraries;
import android.gesture.GestureLibrary;
import android.gesture.GestureOverlayView;
import android.gesture.Prediction;
import android.gesture.GestureOverlayView.OnGesturePerformedListener;
import android.os.Bundle;
import android.widget.Toast;
public class TestGesture extends Activity implements OnGesturePerformedListener{
GestureLibrary mLibrary;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GestureOverlayView gestures = (GestureOverlayView) findViewById(R.id.gestures);
gestures.addOnGesturePerformedListener(this);
mLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures);
if (!mLibrary.load()) {
finish();
}
}
@Override
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
ArrayList predictions = mLibrary.recognize(gesture);
// We want at least one prediction
if (predictions.size() > 0) {
Prediction prediction = (Prediction) predictions.get(0);
// We want at least some confidence in the result
if (prediction.score > 1.0) {
// Show the spell
Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show();
}
}
}
}
Androidに関するものについてもっと興味がある方は、本駅のテーマを見てください。「Androidプログラミングのactivity操作技術のまとめ」、「AndroidビューViewテクニックのまとめ」、「Android操作SQLiteデータベース技術まとめ」、「Android操作json形式データ技術のまとめ」、「Androidデータベース操作技術のまとめ」、「Androidファイルの操作テクニックのまとめ」、「Androidプログラミング開発のSDカード操作方法のまとめ」、「Android開発入門と上級教程」、「Android資源操作技術のまとめ」および「Androidコントロールの使い方のまとめ」ここで述べたように、皆さんのAndroidプログラムの設計に役に立ちます。