onGesturePerformed不识别手势,总是返回null

时间:2012-01-06 20:15:28

标签: android gesture-recognition gestures

我已经阅读了android中的手势,甚至在这个网站上发现了类似的问题,但没有给出解决方案。所以我再问一遍。

我想使用GestrueOverlay翻阅视图切换器。我运行了posebuilder,在res / raw中移动了手势文件,在我的XML中添加了叠加层并实现了监听器。我基本上复制了谷歌指令中的代码。

我可以看到听众跟踪手势,从褪色的黄色变为深黄色,但它无法识别手势。我写了一个吐司,以找出预测的大小,它总是读取ZERO。

请帮助,谢谢你的时间。

这是onCreate代码

      mLibrary = GestureLibraries.fromRawResource(LayoutView.getContext(), R.raw.gestures);
      gestures = (GestureOverlayView) LayoutView.findViewById(R.id.gestures);     
      gestures.addOnGesturePerformedListener(this);

这里是监听器代码

public void onGesturePerformed(GestureOverlayView overlay, Gesture gesture) {
    ArrayList<Prediction> predictions = mLibrary.recognize(gesture);
    Toast.makeText(LayoutView.getContext(), String.valueOf(predictions.size()), Toast.LENGTH_SHORT).show();

    // We want at least one prediction
    if (predictions.size() > 0) {
        Prediction prediction = (Prediction) predictions.get(0);
        // We want at least some confidence in the result
        if (prediction.score > 1.0) {
            // Show the spell
            Toast.makeText(overlay.getContext(), prediction.name, Toast.LENGTH_SHORT).show();
        }
    }   
}

1 个答案:

答案 0 :(得分:0)

对于那些和我有同样问题的人,我想我会发布我的解决方案。您必须在定义后加载手势库。我想

  mLibrary = GestureLibraries.fromRawResource(LayoutView.getContext(), R.raw.gestures);

从资源加载手势,如果加载成功,那么mLibrary.load只是一个布尔值。我的错误是我没有使用那种方法。实际上,您还必须使用库上的load方法来加载手势。

新手的错误,你生活和学习。