제스처 빌더를 사용하여 내 앱에서 위/아래 및 왼쪽/오른쪽 제스처를 수신하려고합니다. 나는 여기 가이드 (http://www.vogella.com/articles/AndroidGestures/article.html)를 따라 갔지만 제대로 작동하는 것 같지만 제스처가 정확히 반응하지는 않습니다. 밝은 노란색 (제스처가 있음)의 오버레이에서 왼쪽과 오른쪽을 표시하고 있지만 Toast
이 인식하면 오른쪽/위/아래가 모두 인식되거나 왼쪽/위/아래를 나타내는 제스처의 이름을 보여주는 팝업을 만듭니다. 또한 실제 스 와이프를 올바른 동작으로 인식하지 못합니다 (오버레이에서 황색으로 변함).Android 제스처를 인식하지 못함
제스처 빌더를 사용하여 제스처 라이브러리를 여러 번 다시 빌드 해 보았습니다. 오류가 발생했을 경우를 대비해 몇 번이나 시도해 보았습니다.
사용되는 코드는 위의 링크와 같습니다.
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
gTap = new GestureDetector(this,(android.view.GestureDetector.OnGestureListener) this);
//Remove title bar
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.main);
//Define textView
textView1 = (TextView) findViewById(R.id.textView1);
textView2 = (TextView) findViewById(R.id.textView2);
textView3 = (TextView) findViewById(R.id.textView3);
textView4 = (TextView) findViewById(R.id.textView4);
GestureOverlayView gestureOverlayView = new GestureOverlayView(this);
View inflate = getLayoutInflater().inflate(R.layout.main, null);
gestureOverlayView.addView(inflate);
gestureOverlayView.addOnGesturePerformedListener(this);
gestureLib = GestureLibraries.fromRawResource(this, R.raw.gestures);
if (!gestureLib.load()) {
finish();
}
setContentView(gestureOverlayView);
//Load font file
Typeface type = Typeface.createFromAsset(getAssets(),"fonts/optima.ttf");
//Set various textViews to font
textView1.setTypeface(type);
textView2.setTypeface(type);
textView3.setTypeface(type);
textView4.setTypeface(type);
prevPass = "Memorable";
}
public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
ArrayList<Prediction> predictions = gestureLib.recognize(gesture);
for (Prediction prediction : predictions) {
if (prediction.score > 1.0) {
Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT)
.show();
}
}
}