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百度地图:百度地图画运动轨迹及图层点击事件处理