android关闭触摸提示音,Android取消和开启View或则ViewGroup点击带有提示音

前言

如果系统设置[声音]选项中关闭了[触摸提示音],则所有的View都没有提示音。

开启系统设置[触摸提示音]基础上,View或ViewGroup设置setOnTouchListener()或者setOnLongClickListener()都是没有提示音的。

开启系统设置[触摸提示音]基础上,View或ViewGroup只有设置setOnClickListener()监听,默认情况下(android:soundEffectsEnabled默认是为true的)时是由提示音的。

在2的前提下,修改View或ViewGroup的android:soundEffectsEnabled属性为false,就没有提示音。

小结一下

如果需要View或ViewGroup点击时有提示音,需要如下三步。

需要开启触摸提示音

android:soundEffectsEnabled属性为true

需要设置setOnClickListener()监听

提示音开启和设置

需要开启触摸提示音

开启这个有两种,一种就是系统设置[声音],然后开启[触摸提示音]。

另外一种时通过代码设置。

# 查询是是否有提示音

int enabled = Settings.System.getInt(getContentResolver(), Settings.System.SOUND_EFFECTS_ENABLED);

/设置 0-关闭,1-打开

Settings.System.putInt(getContentResolver(), Settings.System.SOUND_EFFECTS_ENABLED, 0);

开启View或ViewGroup

设置或者不设置也行,默认都是置为true的,重点就是设置setOnClickListener()监听。

android:id="@+id/main_test_one"

android:layout_width="match_parent"

android:layout_height="200dp"

android:soundEffectsEnabled="true"

android:background="@android:color/holo_red_dark" />

设置监听后,就有按键提示音了。

但是,如果你的View或ViewGroup中的android:soundEffectsEnabled="false"那就没有提示音。

findViewById(R.id.main_test_one).setOnClickListener(new View.OnClickListener() {

@Override

public void onClick(View v) {

}

});

音效是在AudioManager播放的

播放代码: framework/base/media/java/android/media/AudioManager.java

public void playSoundEffect(int effectType) {

if (effectType < 0 || effectType >= NUM_SOUND_EFFECTS) {

return;

}

if (!querySoundEffectsEnabled()) {

return;

}

IAudioService service = getService();

try {

service.playSoundEffect(effectType);

} catch (RemoteException e) {

Log.e(TAG, "Dead object in playSoundEffect"+e);

}

}

参考文章

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值