アプリケーションのボタンに触覚フィードバックを追加し、ボタンの状態(有効または無効)を表示するようにプログラムで制御したい。デフォルトのハプティックフィードバックセッターは、長押しでのみ機能します。単純なボタンクリックで機能させるにはどうすればよいですか?.
また、タッチムーブなどのイベントについて触覚フィードバックを行う方法はありますか?
これは最良の実装ではないかもしれませんが、答えです。
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>
それがお役に立てば幸いです。
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 を常に使用してください。
ViewにはperformHapticFeedback関数があります。これにより、OnClickリスナーなど、必要なときにいつでも実行できます。
getWindow().getDecorView().performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);
アクティビティで使用できる簡単なアプローチ。
前の回答に加えて、デバイス設定から「振動フィードバック」オプションが有効になっていることを確認してください