如何在按钮视图上启用触觉反馈

时间:2010-02-09 09:56:33

标签: android vibrate

我想在我的应用程序按钮中添加触觉反馈,并以编程方式控制它们以显示按钮状态(启用和禁用)。 默认触觉反馈设置器仅适用于长按。如何使其适用于简单的按钮点击。

有没有办法对触摸移动等事件进行触觉反馈?

5 个答案:

答案 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)

除了前面的答案外,请确保从设备设置中启用了“振动反馈”选项

相关问题