Android - 轨迹球活动结束了吗?

Posted

技术标签:

【中文标题】Android - 轨迹球活动结束了吗?【英文标题】:Android - has trackball event ended? 【发布时间】:2010-10-29 13:37:33 【问题描述】:

我想根据轨迹球的运动在屏幕上移动图像。我可以使用 onTrackballEvent 方法捕捉动作。但这需要轨迹球的非常小的浮点值(我相信每次旋转?)。

现在,当使用 LayoutParams 指定时,视图的 X 和 Y 位置应该是整数,因此每次旋转都移动视图是没有意义的。相反,我只想在用户停止旋转轨迹球后移动视图。

有什么方法可以得到用户是否停止使用轨迹球?

【问题讨论】:

【参考方案1】:

如果没有(我不了解 android),经典的方法是在每个事件中启动一个计时器,并跟踪其中报告的增量(通过将它们添加到运行总和中,一个用于 X和一个用于 Y)。在任何后续事件中,在计时器触发之前,只需重新启动同一个计时器,将其触发推到未来。

当用户停止产生事件时,计时器最终会触发,然后你可以应用所有动作的总和,并清除总和。

必须选择合适的超时时间,以免用户交互感觉过于迟缓。也许大约 200-300 毫秒,或者更多。这很容易调整,直到感觉“正确”为止。

【讨论】:

【参考方案2】:

我还从设置阈值中获得了很多价值。因此,如果特定方向上的总移动量加起来达到给定数量,则触发导航事件。

【讨论】:

谢谢哈斯曼。这就是我所做的。一旦差异达到显着水平,我就会更改视图的位置

以上是关于Android - 轨迹球活动结束了吗?的主要内容,如果未能解决你的问题,请参考以下文章

(android) 小吃吧结束后如何关闭活动?

在 Android 中,启动活动对结果有啥用? [复制]

Android百度地图:百度地图画运动轨迹及图层点击事件处理

为从姜饼开始的所有 android 版本在 android 中创建全屏活动

Android Gameloop:结束游戏并开始活动

视图隐藏在android活动中的其他视图后面