Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android:Haptic feedback:onClick()事件与视图中启用的Haptic feedback_Java_Android - Fatal编程技术网

Java Android:Haptic feedback:onClick()事件与视图中启用的Haptic feedback

Java Android:Haptic feedback:onClick()事件与视图中启用的Haptic feedback,java,android,Java,Android,如果你想要一个按钮来提供触觉反馈(例如,手机振动非常短暂,你可以感觉到你真的按下了按钮),那么标准的方法是什么? 似乎可以显式设置onClick()事件并调用振动()函数,给出振动的毫秒数,或者可以在视图中设置hapticFeedbackEnabled 文档似乎表明后者仅适用于长按或虚拟屏幕按键: 如果是这样,那么我需要将我的按钮设置为虚拟屏幕上的键,或者手动设置onClick()事件 你推荐什么 另外,如果我希望当用户的手指触摸按钮时,而不是当他们的手指“释放”按钮时,振动立即发生,那么实现这

如果你想要一个按钮来提供触觉反馈(例如,手机振动非常短暂,你可以感觉到你真的按下了按钮),那么标准的方法是什么? 似乎可以显式设置onClick()事件并调用振动()函数,给出振动的毫秒数,或者可以在视图中设置hapticFeedbackEnabled

文档似乎表明后者仅适用于长按或虚拟屏幕按键:

如果是这样,那么我需要将我的按钮设置为虚拟屏幕上的键,或者手动设置onClick()事件

你推荐什么

另外,如果我希望当用户的手指触摸按钮时,而不是当他们的手指“释放”按钮时,振动立即发生,那么实现这一点的最佳方法是什么


相关问题:

我认为手动调用振动()不是一个好主意。 这意味着不需要触觉反馈的人会让他的手机震动。另外,我不知道它对非振动产品有何反应。 setHapticFeedbackEnabled绝对是一个好方法;该方法是为这个非常特殊的目的而创建的。

我在计算器应用程序中使用了振动(),但这只是因为我编写它时系统没有触觉反馈选项。出于许多原因,我不推荐这种方法。特别是,每部手机都有不同的特性(质量、可控震源电机、电机位置等),所以在一部手机上的“感觉”不会在另一部手机上正确

然而,可以公平地假设,个别手机制造商已经对其特定产品进行了至少一点“调整”,因此内置的触觉反馈有更好的机会让人感觉全面

此外,如上所述,如果您实现自己的触觉反馈,则需要在首选项中为其实现自己的设置。最好让用户在系统范围内进行设置


如果时间允许(哈哈!)我计划从使用振动()切换到使用系统内置的触觉反馈。

Immersion已经开发了一个新的应用程序,为android操作系统和应用程序带来了现实。迫不及待地想玩游戏:)

到目前为止,我唯一的解决办法是在ClickListener上的按钮中调用
PerformHappicFeedback
。这是可行的,但看起来有点像黑客。

中有一个较长的描述

摘要:需要采取以下几个步骤:

  • 在舱单中启用振动
  • 为按钮/视图启用触觉反馈
  • 为按钮注册onTouch侦听器
  • 触地时调用PerformHappicFeedback()
你可以有一个用于触觉反馈的onTouchLister和一个用于动作的onClickHandler,只要确保onTouchHandler返回false,
否则,事件将被标记为已消费,而不是提供给onClickHandler。

谢谢。我还不清楚这到底是怎么做到的。例如,你是如何使你的按钮成为“虚拟屏幕按键”的?我是否认为这是在正常(不长按)按钮按下时获得触觉反馈的唯一方法?看看我的源代码,我发现我没有做任何聪明的事情。我的所有按钮都返回到相同的函数,该函数以if(keyclick&&可控震源!=null)可控震源开始;其中“可控震源”是从可控震源=(可控震源)getSystemService(Context.可控震源\服务)获取的;啊,我明白你的意思了。您希望它适用于按钮小部件,文档中暗示它仅适用于虚拟键盘。对不起,我还没试过。谢谢月亮。查看我对Edward答案的评论。使用setHapticFeedbackEnabled(true)完全没有任何作用。无法保证它会使您的设备使用触觉反馈。