Java Android:Haptic feedback:onClick()事件与视图中启用的Haptic feedback
如果你想要一个按钮来提供触觉反馈(例如,手机振动非常短暂,你可以感觉到你真的按下了按钮),那么标准的方法是什么? 似乎可以显式设置onClick()事件并调用振动()函数,给出振动的毫秒数,或者可以在视图中设置hapticFeedbackEnabled 文档似乎表明后者仅适用于长按或虚拟屏幕按键: 如果是这样,那么我需要将我的按钮设置为虚拟屏幕上的键,或者手动设置onClick()事件 你推荐什么 另外,如果我希望当用户的手指触摸按钮时,而不是当他们的手指“释放”按钮时,振动立即发生,那么实现这一点的最佳方法是什么Java Android:Haptic feedback:onClick()事件与视图中启用的Haptic feedback,java,android,Java,Android,如果你想要一个按钮来提供触觉反馈(例如,手机振动非常短暂,你可以感觉到你真的按下了按钮),那么标准的方法是什么? 似乎可以显式设置onClick()事件并调用振动()函数,给出振动的毫秒数,或者可以在视图中设置hapticFeedbackEnabled 文档似乎表明后者仅适用于长按或虚拟屏幕按键: 如果是这样,那么我需要将我的按钮设置为虚拟屏幕上的键,或者手动设置onClick()事件 你推荐什么 另外,如果我希望当用户的手指触摸按钮时,而不是当他们的手指“释放”按钮时,振动立即发生,那么实现这
相关问题:我认为手动调用振动()不是一个好主意。 这意味着不需要触觉反馈的人会让他的手机震动。另外,我不知道它对非振动产品有何反应。 setHapticFeedbackEnabled绝对是一个好方法;该方法是为这个非常特殊的目的而创建的。我在计算器应用程序中使用了振动(),但这只是因为我编写它时系统没有触觉反馈选项。出于许多原因,我不推荐这种方法。特别是,每部手机都有不同的特性(质量、可控震源电机、电机位置等),所以在一部手机上的“感觉”不会在另一部手机上正确 然而,可以公平地假设,个别手机制造商已经对其特定产品进行了至少一点“调整”,因此内置的触觉反馈有更好的机会让人感觉全面 此外,如上所述,如果您实现自己的触觉反馈,则需要在首选项中为其实现自己的设置。最好让用户在系统范围内进行设置
如果时间允许(哈哈!)我计划从使用振动()切换到使用系统内置的触觉反馈。Immersion已经开发了一个新的应用程序,为android操作系统和应用程序带来了现实。迫不及待地想玩游戏:)到目前为止,我唯一的解决办法是在ClickListener上的按钮中调用
PerformHappicFeedback
。这是可行的,但看起来有点像黑客。中有一个较长的描述
摘要:需要采取以下几个步骤:
- 在舱单中启用振动
- 为按钮/视图启用触觉反馈
- 为按钮注册onTouch侦听器
- 触地时调用PerformHappicFeedback()
否则,事件将被标记为已消费,而不是提供给onClickHandler。谢谢。我还不清楚这到底是怎么做到的。例如,你是如何使你的按钮成为“虚拟屏幕按键”的?我是否认为这是在正常(不长按)按钮按下时获得触觉反馈的唯一方法?看看我的源代码,我发现我没有做任何聪明的事情。我的所有按钮都返回到相同的函数,该函数以if(keyclick&&可控震源!=null)可控震源开始;其中“可控震源”是从可控震源=(可控震源)getSystemService(Context.可控震源\服务)获取的;啊,我明白你的意思了。您希望它适用于按钮小部件,文档中暗示它仅适用于虚拟键盘。对不起,我还没试过。谢谢月亮。查看我对Edward答案的评论。使用setHapticFeedbackEnabled(true)完全没有任何作用。无法保证它会使您的设备使用触觉反馈。