0

現在、私はを使用するアプリケーションを作成しています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);
        }
    }
}

}

更新: 現在のコードはジェスチャを保存しますが、アプリケーションを終了すると保存されません

4

1 に答える 1