我想向应用程序的按钮添加触觉反馈,并通过编程控制它们以显示按钮状态(启用和禁用)。默认的触觉反馈设置器仅适用于长按。我怎样才能让它工作于简单的按钮点击。
还有,有没有一种方法可以对触摸移动这样的事件进行触觉反馈?
发布于 2010-03-31 15:09:28
以下是一个答案,尽管它可能不是最好的实现:
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"/>我希望这能有所帮助。
发布于 2012-10-31 14:42:57
2019年12月24日更新:
视图必须通过以下方式启用触觉功能:
android:hapticFeedbackEnabled="true"。view.setHapticFeedbackEnabled(true);(引用自Ivan Chau)
然而,需要考虑的另一件事是在虚拟设备中启用触觉设置。这有时很烦人,所以我们有一些标志来帮助我们(它们会以某种方式忽略这些启用设置):
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的一个例子是,使用下面的代码运行触觉反馈。
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,了解如何始终使用它。
发布于 2010-02-10 01:49:30
View有一个performHapticFeedback函数,它可以让你在任何时候,也就是在OnClick监听器上执行它。
https://stackoverflow.com/questions/2228151
复制相似问题