Androidでは端末の設定で「タッチ操作音」をONにしていると、
アプリ内のボタンやリストのセルをタップした時に操作音が鳴るようになる
もし何も対応しないまま、アプリ内のボタンに独自のタップ音をつけた場合、
2重でタップ音が聞こえてしまったり、アプリ内の独自ボリュームはミュートにしているのに端末の操作音が聞こえてしまって、
ユーザーからしたら不具合と思われてしまう可能性がある
そのようなことを回避するために、今回は自分のアプリ内では端末の操作音が鳴らないようにする設定方法の紹介
鳴らないようにする設定方法
設定にはxmlでやる方法とコードでやる方法がある
xml
設定したいボタンやリストに対して soundEffectsEnabled=false
を追加すれば良い
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="button"
android:soundEffectsEnabled="false"
/>
また、使っているテーマのsoundEffectsEnabled
に対してfalse
を設定すると、
アプリ内全体で操作音が鳴らないように一括設定することもできる
<style name="AppTheme" parent="@style/AppBaseTheme">
<item name="android:windowNoTitle">true</item>
<item name="android:soundEffectsEnabled">false</item>
</style>
特にこだわりがなければテーマにさえ設定しておけば良い
コード
コードでやる場合には以下のようにすれば設定できる
java
Button button = (Button) view.findViewById(R.id.btn);
button.setSoundEffectsEnabled(false);
kotlin
var button = view.findViewById(R.id.btn) as Button
button.isSoundEffectsEnabled = false
xmlを使ってレイアウトを作っていないダイアログ内のボタンなどに対してはこの方法でやることになる