Gesture で構成されるサンプル アプリケーションを開発しています。いくつかのサンプル コードも試しましたが、理解できません。
a) アプリケーションで、文字 (T) または (Q) を描画するときに、新しいアクティビティを開始する必要があります。
b) res/raw フォルダを作成しました。そのフォルダにジェスチャを保存する方法を教えてください。
c)参照用に以下に貼り付けるサンプルコードがあります。
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gestureResult = (TextView)findViewById(R.id.gestureresult);
//To load the gestures into your application GestureLibrary is used.gestures are stored under res/raw/gestures.
gestureLibrary = GestureLibraries.fromRawResource(this, R.raw.gesture);
if (!gestureLibrary.load()) {
finish();
}
// A gesture overlay acts as a simple drawing board on which the user can draw his gestures.
gestureOverlayView = (GestureOverlayView)findViewById(R.id.gestures);
gestureOverlayView.addOnGesturePerformedListener(gesturePerformedListener);
}
OnGesturePerformedListener gesturePerformedListener = new OnGesturePerformedListener(){
@Override
public void onGesturePerformed(GestureOverlayView view, Gesture gesture) {
// TODO Auto-generated method stub
ArrayList<Prediction> prediction = gestureLibrary.recognize(gesture);
if(prediction.size() > 0){
System.out.println("prediction::>"+prediction);
gestureResult.setText(prediction.get(0).name);
}
}};
次の行で、ジェスチャをロードできないため、 gestureLibrary.load()アクティビティが終了しています。次の例外がログに表示されました。
05-15 13:17:06.027: D/ddm-heap(3012): Got feature list request
05-15 13:17:06.257: D/Gestures(3012): Could not load the gesture library from raw resource com.gesture.testgesture:raw/gesture
05-15 13:17:06.257: D/Gestures(3012): java.io.EOFException
05-15 13:17:06.257: D/Gestures(3012): at java.io.DataInputStream.readShort(DataInputStream.java:395)
05-15 13:17:06.257: D/Gestures(3012): at android.gesture.GestureStore.load(GestureStore.java:285)
05-15 13:17:06.257: D/Gestures(3012): at android.gesture.GestureLibraries$ResourceGestureLibrary.load(GestureLibraries.java:132)
05-15 13:17:06.257: D/Gestures(3012): at com.gesture.testgesture.GestureIdentifierActivity.onCreate(GestureIdentifierActivity.java:28)
05-15 13:17:06.257: D/Gestures(3012): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1123)
05-15 13:17:06.257: D/Gestures(3012): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2364)
05-15 13:17:06.257: D/Gestures(3012): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2417)
05-15 13:17:06.257: D/Gestures(3012): at android.app.ActivityThread.access$2100(ActivityThread.java:116)
05-15 13:17:06.257: D/Gestures(3012): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1794)
最後に、ジェスチャー文字 T と Q を使用して、あるアクティビティから別のアクティビティに切り替える方法を説明します。