2011-07-11 14 views
1

を仕事をしたいいけないが、右/左と、このコードを書いた:アンドロイド - ジェスチャーはジェスチャーがスライド用のファイルを作成、私はジェスチャーBuilderのアプリを実行したのは、

public class MainActivity extends Activity implements OnGesturePerformedListener { 

    private GestureLibrary mGestureLibrary; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     GestureOverlayView gestureOverlayView = new GestureOverlayView(this); 
     View inflate = getLayoutInflater().inflate(R.layout.main, null); 
     gestureOverlayView.addView(inflate); 
     gestureOverlayView.addOnGesturePerformedListener(this); 
     mGestureLibrary = GestureLibraries.fromRawResource(this, R.raw.gestures); 
     if (mGestureLibrary == null) { 
      finish(); 
     } 

     setContentView(gestureOverlayView); 
    } 

    @Override 
    public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) { 
     ArrayList<Prediction> predictions = mGestureLibrary.recognize(gesture); 

     for (Prediction prediction : predictions) { 
      if (prediction.score > 1.0) { 
       Toast.makeText(this, prediction.name, Toast.LENGTH_SHORT).show(); 
      } 
     } 
    } 
} 

ジェスチャー/生/中ですが、ときに私のアプリは何も言いませんそれをテストしようとすると(ジェスチャを正常にロードすると、onGesturePerformedのイベントが呼び出されますが、ジェスチャは認識されません)。身振りはGestures Builederで完全に機能するので、私のミスはどこですか?

+0

万が一、問題の解決策を見つけましたか?私は同じ正確な問題を抱えています。 – user1110879

答えて

0

アクションの名前と一致する予測の名前を確認する必要があります。平等のためのテストと、あなたのロジックを実行します。

String action = predictions.get(0).name; 
if("right".equals(action){ 
} 
0

あなたはそれを使用する前に、mGestureLibraryの負荷を()を呼び出す必要があるかもしれません。

IDEでは、GestureStore HashMap(mNamedGestures)のエントリを見ることができるはずです。この例では、Larsはこれに該当します。

関連する問題