Android如何给按钮添加点击音效
发布时间 - 2026-01-11 00:22:07 点击率:次有很多制作精良的APP都自带点击音效,那么如何简单的来实现这一效果,这里需要使用到的一个概念叫做SoundPool,这个类主要用于播放一些比较小的音频文件,因为比较方便,通常用在游戏里比较多。

代码
闲话不多说,我们现在需要做一个功能,就是点击某一按钮的时候同时播放音效出来。
首先准备好你的音频文件,然后,在你的rec下面简历一个文件夹命名为raw,放入音频文件,如图所示:
然后布局文件只有一个按钮
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Button
android:id="@+id/btnPlay"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_margin="5dp"
android:text="Play Wav"
tools:ignore="HardcodedText" />
</LinearLayout>
然后是MainActivity
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btnPlay;
private SoundPool soundPool;//声明一个SoundPool
private int soundID;//创建某个声音对应的音频ID
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
btnPlay = (Button) findViewById(R.id.btnPlay);
btnPlay.setOnClickListener(this);
initSound();
}
@SuppressLint("NewApi")
private void initSound() {
soundPool = new SoundPool.Builder().build();
soundID = soundPool.load(this, R.raw.testsong, 1);
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btnPlay:
playSound();
break;
}
}
private void playSound() {
soundPool.play(
soundID,
0.1f, //左耳道音量【0~1】
0.5f, //右耳道音量【0~1】
0, //播放优先级【0表示最低优先级】
1, //循环模式【0表示循环一次,-1表示一直循环,其他表示数字+1表示当前数字对应的循环次数】
1 //播放速度【1是正常,范围从0~2】
);
}
}
这样当你点击按钮的时候就会自动播放音效,要注意,这里初始化SoundPool的方法是安卓5.0以后提供的新方式,5.0以前的话可以使用:
soundPool = new SoundPool(5, AudioManager.STREAM_MUSIC, 0);
其中构造方法放参数不在解释,随着安卓的发展,5.0之前的份额也会越来越少,所以在以后的文中尽量使用比较新的SDK提供的方法。
以上代码完成后在手机上运行,点击可以听到音效。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android按钮添加点击音效
# APP自带点击音效
# Android按钮点击音效
# 关于android连续点击出现多个Activity界面的解决方法
# Android实现连续点击多次事件的代码详解
# Android 自定义按钮点击事件和长按事件对比
# Android中AlertDialog 点击按钮后不关闭对话框的功能
# Android之有效防止按钮多次重复点击的方法(必看篇)
# android屏蔽按钮连续点击的示例代码
# 这一
# 就会
# 也会
# 有很多
# 当你
# 要注意
# 做一个
# 只有一个
# 可以使用
# 我们现在
# 自带
# 较小
# 多说
# 比较多
# 用在
# 来实现
# 主要用于
# 命名为
# 机上
# 在手
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Python文本处理实践_日志清洗解析【指导】
LinuxCD持续部署教程_自动发布与回滚机制
Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】
如何在Ubuntu系统下快速搭建WordPress个人网站?
微信小程序 require机制详解及实例代码
用yum安装MySQLdb模块的步骤方法
Laravel API资源类怎么用_Laravel API Resource数据转换
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
常州企业网站制作公司,全国继续教育网怎么登录?
如何快速完成中国万网建站详细流程?
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
油猴 教程,油猴搜脚本为什么会网页无法显示?
Laravel如何与Docker(Sail)协同开发?(环境搭建教程)
如何用好域名打造高点击率的自主建站?
Linux虚拟化技术教程_KVMQEMU虚拟机安装与调优
如何确认建站备案号应放置的具体位置?
Laravel怎么解决跨域问题_Laravel配置CORS跨域访问
如何在云主机快速搭建网站站点?
Laravel怎么做缓存_Laravel Cache系统提升应用速度的策略与技巧
如何快速生成高效建站系统源代码?
Laravel如何处理JSON字段的查询和更新_Laravel JSON列操作与查询技巧
Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程
黑客如何利用漏洞与弱口令入侵网站服务器?
浅谈Javascript中的Label语句
Laravel Blade组件怎么用_Laravel可复用视图组件的创建与使用
bing浏览器学术搜索入口_bing学术文献检索地址
如何在新浪SAE免费搭建个人博客?
Android实现代码画虚线边框背景效果
Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理
原生JS实现图片轮播切换效果
Laravel Seeder怎么填充数据_Laravel数据库填充器的使用方法与技巧
Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试
如何快速搭建自助建站会员专属系统?
Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程
Laravel如何升级到最新的版本_Laravel版本升级流程与兼容性处理
javascript读取文本节点方法小结
制作电商网页,电商供应链怎么做?
实例解析angularjs的filter过滤器
如何利用DOS批处理实现定时关机操作详解
标准网站视频模板制作软件,现在有哪个网站的视频编辑素材最齐全的,背景音乐、音效等?
Python企业级消息系统教程_KafkaRabbitMQ高并发应用
Laravel如何使用Seeder填充数据_Laravel模型工厂Factory批量生成测试数据【方法】
Laravel如何处理和验证JSON类型的数据库字段
Win11怎么关闭透明效果_Windows11辅助功能视觉效果设置
在线教育网站制作平台,山西立德教育官网?
Laravel怎么实现软删除SoftDeletes_Laravel模型回收站功能与数据恢复【步骤】
Laravel distinct去重查询_Laravel Eloquent去重方法
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
Laravel如何使用API Resources格式化JSON响应_Laravel数据资源封装与格式化输出

