首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在按钮视图上启用触觉反馈

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

Stack Overflow用户
提问于 2010-02-09 17:56:33
回答 5查看 62K关注 0票数 47

我想向应用程序的按钮添加触觉反馈,并通过编程控制它们以显示按钮状态(启用和禁用)。默认的触觉反馈设置器仅适用于长按。我怎样才能让它工作于简单的按钮点击。

还有,有没有一种方法可以对触摸移动这样的事件进行触觉反馈?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-03-31 15:09:28

以下是一个答案,尽管它可能不是最好的实现:

代码语言:javascript
复制
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“文件中来完成此操作:

代码语言:javascript
复制
<uses-permission android:name="android.permission.VIBRATE"/>

我希望这能有所帮助。

票数 68
EN

Stack Overflow用户

发布于 2012-10-31 14:42:57

2019年12月24日更新:

视图必须通过以下方式启用触觉功能:

  1. 在xml中添加android:hapticFeedbackEnabled="true"
  2. 或在代码中使用view.setHapticFeedbackEnabled(true);

(引用自Ivan Chau)

然而,需要考虑的另一件事是在虚拟设备中启用触觉设置。这有时很烦人,所以我们有一些标志来帮助我们(它们会以某种方式忽略这些启用设置):

代码语言:javascript
复制
view.performHapticFeedback(
    HapticFeedbackConstants.VIRTUAL_KEY, 
    HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING  // Ignore device's setting. Otherwise, you can use FLAG_IGNORE_VIEW_SETTING to ignore view's setting.
);

Mayra的一个例子是,使用下面的代码运行触觉反馈。

代码语言:javascript
复制
View view = findViewById(...)
view.performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY);

这行代码可以很容易地包含在onclick操作中。这样做的好处是你不需要在AndroidManifest中设置权限(我不需要在SdkVersion "7“上设置权限(2.1或2.3是7 ))

还请注意,在我的代码中,只有当用户将触觉反馈启用为全局时才会运行。请参阅http://developer.android.com/reference/android/view/HapticFeedbackConstants.html,了解如何始终使用它。

票数 115
EN

Stack Overflow用户

发布于 2010-02-10 01:49:30

View有一个performHapticFeedback函数,它可以让你在任何时候,也就是在OnClick监听器上执行它。

票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2228151

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档