【问题标题】:Android: Haptic feedback: onClick() event vs hapticFeedbackEnabled in the viewAndroid:触觉反馈:视图中的 onClick() 事件与 hapticFeedbackEnabled
【发布时间】:2010-05-13 20:23:39
【问题描述】:

如果您想要一个按钮来提供触觉反馈(即,手机会非常短暂地振动,这样您就可以感觉到您真的按下了按钮),那么执行此操作的标准方法是什么? 似乎您可以显式设置 onClick() 事件并调用 vibrate() 函数,给振动毫秒数,或者您可以在视图中设置 hapticFeedbackEnabled。

文档似乎表明后者仅适用于长按或虚拟屏幕键:http://developer.android.com/reference/android/view/View.html#performHapticFeedback(int)

如果正确,那么我需要将我的按钮设置为虚拟屏幕键或手动设置 onClick() 事件。

你有什么推荐的?

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

相关问题:How to enable haptic feedback on button view

【问题讨论】:

    标签: java android


    【解决方案1】:

    Android Cookbook - Chapter Haptic Feedback中有更长的描述

    摘要:需要几个步骤:

    • 在清单中启用振动
    • 为按钮/视图启用触觉反馈
    • 为您的按钮注册一个 onTouch 侦听器
    • 在着陆时致电performHapticFeedback()

    您可以同时拥有一个用于触觉反馈的 onTouchLister 和一个用于您的操作的 onClickHandler,只要确保 onTouchHandler 返回 false, 否则,该事件被标记为已消费,而不是提供给 onClickHandler。

    【讨论】:

      【解决方案2】:

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

      但是,可以公平地假设各个手机制造商至少对其特定产品进行了一些“调整”,因此内置的触觉反馈更有可能获得全面的感觉。

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

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

      【讨论】:

      • 谢谢爱德华。我仍然不清楚这实际上是如何完成的。例如,您如何使您的按钮成为“虚拟屏幕键”,我是否正确地认为这是在正常(非长按)按钮按下时获得触觉反馈的唯一方法?
      • 查看我的源代码,我发现我没有做任何聪明的事情。我所有的按钮都回调到同一个函数,该函数以 if(keyclick && vibrator != null ) vibrator.vibrate(KEYCLICK_TIME);其中“振动器”是从 vibrator = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE);啊,我明白你在说什么。您希望这适用于 Button 小部件,并且文档暗示它仅适用于虚拟键盘。抱歉,没试过。
      【解决方案3】:

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

      【讨论】:

      • 感谢月亮。查看我对爱德华回答的评论。
      • 使用 setHapticFeedbackEnabled(true) 完全没有任何作用。无法保证它会让您的设备使用触觉反馈。
      【解决方案4】:

      到目前为止,我唯一的解决方案是在 OnClickListener 按钮中调用 performHapticFeedback。这行得通,但它似乎有点像 hack。

      【讨论】:

        【解决方案5】:

        Immersion 开发了一个Android Haptic Feedback SDK,为安卓操作系统和应用程序带来了现实。等不及游戏了:)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-05
          • 2017-07-10
          • 1970-01-01
          • 2014-11-03
          • 1970-01-01
          • 2015-05-30
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多