現在、私はを使用するアプリケーションを作成していますGestureOverlayView
。を使用していくつかのデフォルト ジェスチャを既に作成し、それらをアプリケーションのフォルダにGestureBuilder
コピーしました。res/raw
私のアプリケーションはカスタマイズも行います。つまり、ユーザーは自分のジェスチャを作成して保存できます。res/raw
ユーザーが追加で作成したジェスチャーをフォルダーに保存することは不可能だと読みました。いくつかのオプションがあると言われました:ExternalStorage
(SDカードへ)、、、InternalStorage
およびSharedPreferences
。どちらの方法がおそらくより最適な選択ですか?
これは私がこれまでに持っているものです:
package com.epicunlock.rx24race;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Context;
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.widget.EditText;
import android.widget.Toast;
//Default gestures: s, d, b, c
public class createShortcut extends Activity implements OnGesturePerformedListener {
EditText scName;
private GestureLibrary gestureLib;
FileOutputStream fos;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.createshortcutlayout);
scName = (EditText)findViewById(R.id.etName);
GestureOverlayView gestures = (GestureOverlayView)findViewById(R.id.gestures);
gestures.addOnGesturePerformedListener(this);
gestureLib = GestureLibraries.fromRawResource(this, R.raw.gestures);
if (!gestureLib.load()) {
finish();
}
}
@Override
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
// TODO Auto-generated method stub
ArrayList<Prediction> predictions = gestureLib.recognize(gesture);
if (predictions.size() > 0) {
Prediction prediction = predictions.get(0);
if (prediction.score > 1.0) {
Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show();
} else {
gestureLib.addGesture(scName.getText().toString(), gesture);
gestureLib.save();
setResult(RESULT_OK);
}
}
}
}
更新: 現在のコードはジェスチャを保存しますが、アプリケーションを終了すると保存されません