我已经在模拟器中通过 GestureBuilder 生成了手势文件。我担心的是有时它会显示错误的预测。例如如果我有一个大写 H 的手势,那么如果我只做一个水平笔划,它也会检测到匹配项。 我添加了 prediction.score > 1 的条件,然后它也显示相同。
Java 方面还有什么要添加的吗?我还尝试提供 SEQUENCE_SENSITIVE 和 ORIENTATION_INVARIANT。还尝试设置 setOrientationStyle(8);
请建议是否还有其他要添加的内容。
最佳答案
您需要设置适合您的最低分数。我建议打印出所有预测的手势及其名称和得分。如果您使用的是与我相同的演示代码,预测器应自动按分数降序排列它们。
for (Prediction prediction : predictions)
System.out.println(prediction.name + " " + prediction.score);
画一个符号,看看控制台吐出什么。您会看到它列出了每个手势以及与每个手势的接近程度。设置最低分数 ( if (prediction.score > 3.0) ),然后仅调用预测手势列表中的第一个。调整分数直到你满意为止。我发现 10 个效果不错,但对于我强制绘图精度的游戏,我一路上升到 25 个。
请记住,这个分数是它与您的手势文件中的手势的接近程度,因此如果文件中的手势绘制得不好,完美的绘图不一定会获得最高分。
编辑:我还在我的应用程序中添加了左手势和右手势以防止误报。如果左右滑动破坏了您的应用,我建议添加这些手势来捕捉它们。
关于android - 优化 GestureOverlayView 中的手势预测,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22385657/