2

ジェスチャ ビルダーを使用して、アプリで上下左右のジェスチャを受信しようとしています。こちらのガイド ( http://www.vogella.com/articles/AndroidGestures/article.html ) に従いましたが、動作しているように見えますが、ジェスチャが正しく反応していません。オーバーレイに明るい黄色 (ジェスチャが見つかりました)Toastで左右が表示されますが、認識されたジェスチャの名前を表示するポップアップを作成すると、右/上/下がすべて認識されているか、左/上/下が認識されていることが示されます。また、実際の上下スワイプを有効なジェスチャとして認識しません (オーバーレイで黄色くフェードアウト)。

エラーが発生した場合に備えて、Gesture Builder を使用して Gesture ライブラリを何度か再構築しようとしましたが、そうではないようです。

使用されているコードは、上記のリンクの通りです。

@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();
    }
  }
}
4

1 に答える 1