目前,我正在制作涉及使用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);
}
}
}
}
更新:我当前的代码保存了手势,但是当我退出应用程序时它们未被保存
答案 0 :(得分:0)
sdk示例中有一个手势生成器示例。样本/机器人-17 / GestureBuilder。
此示例显示如何创建,保存等手势。
对于样本中问题的简短回答,他们使用addgesture()和save()方法将手势保存到手势库。