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

0

sdk 示例中有一个手势生成器示例。样本/android-17/GestureBuilder.

此示例展示了如何创建、保存等手势。

对于示例中您的问题的简短回答,他们使用 addgesture() 和 save() 方法将手势保存到手势库中。

于 2013-08-14T13:51:52.803 回答