web-dev-qa-db-ja.com

ボタンビューで触覚フィードバックを有効にする方法

アプリケーションのボタンに触覚フィードバックを追加し、ボタンの状態(有効または無効)を表示するようにプログラムで制御したい。デフォルトのハプティックフィードバックセッターは、長押しでのみ機能します。単純なボタンクリックで機能させるにはどうすればよいですか?.

また、タッチムーブなどのイベントについて触覚フィードバックを行う方法はありますか?

35

これは最良の実装ではないかもしれませんが、答えです。

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>

それがお役に立てば幸いです。

56
RyanM

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 を常に使用してください。

84
FIG-GHD742

ViewにはperformHapticFeedback関数があります。これにより、OnClickリスナーなど、必要なときにいつでも実行できます。

28
Cheryl Simon
getWindow().getDecorView().performHapticFeedback(HapticFeedbackConstants.VIRTUAL_KEY, HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING);

アクティビティで使用できる簡単なアプローチ。

3
Hamid Vakilian

前の回答に加えて、デバイス設定から「振動フィードバック」オプションが有効になっていることを確認してください

0
Hoby