在我的应用程序中,我使用声音池进行按钮单击音频效果。 问题是,如果在设备的设置中勾选了“Audible selection”,那么我的按钮将产生两个声音:系统1和我的同时。
似乎如果在每个按钮属性中我将“Sound Effects Enabled”设置为false,则不再听到系统声音。但是我在十几个活动中有很多按钮,而且我在代码中添加了一个按钮矩阵,所以将“Sound Effects Enabled”设置为false来为每个按钮设置为非常不方便。我不确定我是如何在代码中执行此操作的。
是否有更全面的方法可以在我的应用程序中停止“Audible selection”或至少针对这一项活动?
答案 0 :(得分:52)
创建主题文件“res / values / styles.xml”
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppBaseTheme" parent="android:Theme.Black.NoTitleBar">
<!--
Theme customizations available in newer API levels can go in
res/values-vXX/styles.xml, while customizations related to
backward-compatibility can go here.
-->
</style>
<!-- Application theme. -->
<style name="AppTheme" parent="AppBaseTheme">
<!-- All customizations that are NOT specific to a particular API-level can go here. -->
<item name="android:soundEffectsEnabled">false</item>
</style>
</resources>
然后在“AndroidManifest.xml”中引用它
<application
...
android:theme="@style/AppTheme" >
答案 1 :(得分:29)
我的申请遇到了同样的问题。通过将android:soundEffectsEnabled=false
置于主题中,我能够全局关闭声音反馈。
答案 2 :(得分:10)
您可以创建自己的Button类并在XML布局文件中使用它......
package com.mycompany.myApp
public class MyButton extends Button {
public MyButton (Context context, AttributeSet attrs) {
this.setSoundEffectsEnabled(false);
}
}
然后在XML布局文件中使用...
<com.mycompany.myApp.MyButton
...
</com.mycompany.myApp.MyButton>
...为你的按钮。
答案 3 :(得分:1)
您可以创建从Button扩展的自定义视图。然后在创建时将声音效果设置为false。
http://developer.android.com/guide/topics/ui/custom-components.html
您还可以更进一步,让视图知道应该播放哪种新的自定义声音。