我想在我的应用程序按钮中添加触觉反馈,并以编程方式控制它们以显示按钮状态(启用和禁用)。 默认触觉反馈设置器仅适用于长按。如何使其适用于简单的按钮点击。
有没有办法对触摸移动等事件进行触觉反馈?
答案 0 :(得分:81)
Mayra的一个例子是,对于运行Haptic Feedback,请使用此代码。
View view = findViewById(...)
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);
这行代码很容易包含在你的onclick动作中。 这方面的好处是你不需要在AndroidManifest中设置权限 (我不需要在SdkVersion“7”(2.1或2.3是7))
此外,在我的代码中做笔记,只有在将Haptic Feedback用作全局时才会运行。 请始终使用http://developer.android.com/reference/android/view/HapticFeedbackConstants.html。
答案 1 :(得分:56)
这是一个答案,尽管它可能不是最好的实现:
import android.view.View;
import android.os.Vibrator;
public class Main extends Activity implements OnClickListener
{
private View myView;
private Vibrator myVib;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
myVib = (Vibrator) this.getSystemService(VIBRATOR_SERVICE);
//myView can be any type of view, button, etc.
myView = (View) this.findViewById(R.id.myView);
myView.setOnClickListener(this);
}
@Override
public void onClick(View v)
{
myVib.vibrate(50);
//add whatever you want after this
}
}
不要忘记,您还需要将“android.permission.VIBRATE”权限添加到程序的清单中。您可以通过将以下内容添加到“AndroidManifest.xml”文件来执行此操作:
<uses-permission android:name="android.permission.VIBRATE"></uses-permission>
我希望有所帮助。
答案 2 :(得分:28)
View有一个performHapticFeedback函数,它允许您随时执行它,即在OnClick监听器上执行。
答案 3 :(得分:2)
getWindow().getDecorView().performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
您可以在活动中使用的简单方法。
答案 4 :(得分:0)
除了前面的答案外,请确保从设备设置中启用了“振动反馈”选项