android - 优化 GestureOverlayView 中的手势预测

标签 android gesture

我已经在模拟器中通过 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/

相关文章:

ios - 如何在不滚动页面的情况下在 iOS 上使用 HammerJS 捏合手势?

android - 如何使用 ProgressDialog 在 android 中显示后台进度

android - 相机 2's setVideoFramerate() doesn' t 有任何影响

ios - 具有重叠 UIView 的 Swift 滑动手势识别器

android - 如何在 SwipeRefreshLayout 中设置增量

ios - 阻止 super View 识别平移手势(在 iOS 7 中)

Android 10 手势导航禁用

java - 除非刷新,否则 RecyclerAdapter 不会加载数据

java - 如何在android中的hashmap中的值的帮助下打印键

android - 捕获点击Android中的自定义 ListView