2011-07-11 53 views
1

我跑手勢生成器應用程序,創建手勢文件的滑左/右寫了這樣的代碼:Android的 - 手勢不要的要工作

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事件,但手勢不被識別)。手勢在Builder手勢中完美運作,那麼我的錯誤在哪裏?

+0

有沒有機會找出解決問題的辦法?我有同樣的確切問題。 – user1110879

回答

0

您還需要檢查應與您的某個操作的名稱相匹配的預測的名稱。測試是否相等,然後執行你的邏輯:

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

您可能需要在使用前請mGestureLibrary負載()。並不是說它完全被記錄下來,但這就是Lars在這個例子中的作用,它適用於我:http://www.vogella.com/articles/AndroidGestures/article.html

在IDE中,您應該能夠看到GestureStore HashMap(mNamedGestures)中的條目。