我有一个带有 9 个按钮的 Android 应用程序。此应用程序在 2.36 上运行,并且是设备上唯一的应用程序(或者至少是我们让用户使用的唯一应用程序 - 我们在交付设备时预装了我们的代码,作为我们销售的工业产品套件的一部分。)
所有按钮都转到同一个处理程序并按它们的标签在那里分类。处理程序在 XML 中指定:
<Button android:id="@+id/IdleButton"
android:layout_marginLeft="5dp"
android:background="@drawable/idle18pt_he_normal"
android:hapticFeedbackEnabled="true"
android:layout_width="92dp"
android:layout_height="92dp"
android:tag="0"
android:onClick="theButtonHandler">
</Button>
我想在用户按下按钮时启用触觉反馈,即振动。有没有办法在 XML 中做到这一点,或者如果没有,有没有办法在我的 onClick() 处理程序中做到这一点?
我在 Android 上看到的用于触觉反馈的 Web 示例(例如 http://androidcookbook.com/Recipe.seam?recipeId=1242)似乎主要涉及对 list 的更改、对 XML 的更改(您可以看到我已经在上面的 XML 中启用了它)然后为按钮声明、初始化和实现单独的 Touch 处理程序。这似乎需要做很多工作,尤其是因为我有 9 个按钮。
由于我的所有按钮都只有一个 onClick 处理程序,有没有一种方法可以在那里实现触觉反馈?
当我点击我的一个按钮时,我所要做的就是在手机设置的“声音”部分中选中“声音选择”——根本不需要编码。为什么触觉反馈要复杂得多?
最佳答案
不使用 VIBRATE
允许。
您可以使用 performHapticFeedback()
任何View
的功能包括Button
.
例如,在 Kotlin 中以编程方式:
view.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
这会使设备振动。
您可以在
Fragment
中的任何位置振动设备或 Activity
,即使您没有 View
可用的。在 fragment 中,您可以执行以下操作:
requireView().performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
在 Activity 中,您可以:
window.decorView.rootView.performHapticFeedback(HapticFeedbackConstants.LONG_PRESS)
关于java - 对 Android 中的触觉反馈感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25748230/