Android_弹钢琴(多媒体应用)
Android_弹钢琴(多媒体应用)
所需文件
MainActivity
package com.example.a524_11_playpiano;import android.media.AudioManager;
import android.media.SoundPool;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;import androidx.appcompat.app.AppCompatActivity;import java.util.HashMap;public class MainActivity extends AppCompatActivity implements View.OnClickListener
{private SoundPool soundpool;private HashMap<Integer,Integer> map = new HashMap<>();@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);//初始化界面控件,并为控件添加点击事件的监听器ImageView iv_do = findViewById(R.id.iv_do);ImageView iv_re = findViewById(R.id.iv_re);ImageView iv_mi = findViewById(R.id.iv_mi);ImageView iv_fa = findViewById(R.id.iv_fa);ImageView iv_so = findViewById(R.id.iv_so);ImageView iv_la = findViewById(R.id.iv_la);ImageView iv_si = findViewById(R.id.iv_si);iv_do.setOnClickListener(this);iv_re.setOnClickListener(this);iv_mi.setOnClickListener(this);iv_fa.setOnClickListener(this);iv_so.setOnClickListener(this);iv_la.setOnClickListener(this);iv_si.setOnClickListener(this);initSoundPool();//初始化SoundPool}private void initSoundPool() {if(soundpool == null){//创建SoundPool对象soundpool = new SoundPool(7, AudioManager.STREAM_SYSTEM, 0);}//加载音频文件,并将文件存储到HashMap集合中map.put(R.id.iv_do,soundpool.load(this,R.raw.music_do,1));map.put(R.id.iv_re,soundpool.load(this,R.raw.music_re,1));map.put(R.id.iv_mi,soundpool.load(this,R.raw.music_mi,1));map.put(R.id.iv_fa,soundpool.load(this,R.raw.music_fa,1));map.put(R.id.iv_so,soundpool.load(this,R.raw.music_so,1));map.put(R.id.iv_la,soundpool.load(this,R.raw.music_la,1));map.put(R.id.iv_si,soundpool.load(this,R.raw.music_si,1));}@Overridepublic void onClick(View v) {play(v.getId());}private void play(int i){soundpool.play(map.get(i),1.0f,1.0f,0,0,1.0f); //播放音频}@Overrideprotected void onDestroy() {super.onDestroy();if (soundpool != null) {soundpool.autoPause(); //暂停播放音频soundpool.release(); //释放Soundpool对象占用的资源soundpool = null;}}
}
activity_main
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:background="@drawable/background"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:orientation="horizontal"><ImageViewandroid:id="@+id/iv_do"android:layout_width="0dp"android:layout_height="200dp"android:layout_weight="1"android:src="@drawable/icon_do_selector" /><ImageViewandroid:id="@+id/iv_re"android:layout_width="0dp"android:layout_height="200dp"android:layout_weight="1"android:src="@drawable/icon_re_selector" /><ImageViewandroid:id="@+id/iv_mi"android:layout_width="0dp"android:layout_height="200dp"android:layout_weight="1"android:src="@drawable/icon_mi_selector" /><ImageViewandroid:id="@+id/iv_fa"android:layout_width="0dp"android:layout_height="200dp"android:layout_weight="1"android:src="@drawable/icon_fa_selector" /><ImageViewandroid:id="@+id/iv_so"android:layout_width="0dp"android:layout_height="200dp"android:layout_weight="1"android:src="@drawable/icon_so_selector" /><ImageViewandroid:id="@+id/iv_la"android:layout_width="0dp"android:layout_height="200dp"android:layout_weight="1"android:src="@drawable/icon_la_selector" /><ImageViewandroid:id="@+id/iv_si"android:layout_width="0dp"android:layout_height="200dp"android:layout_weight="1"android:src="@drawable/icon_si_selector" /></LinearLayout>
</RelativeLayout>
顺序放
<vector xmlns:android="http://schemas.android.com/apk/res/android"xmlns:aapt="http://schemas.android.com/aapt"android:width="108dp"android:height="108dp"android:viewportWidth="108"android:viewportHeight="108"><path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z"><aapt:attr name="android:fillColor"><gradientandroid:endX="85.84757"android:endY="92.4963"android:startX="42.9492"android:startY="49.59793"android:type="linear"><itemandroid:color="#44000000"android:offset="0.0" /><itemandroid:color="#00000000"android:offset="1.0" /></gradient></aapt:attr></path><pathandroid:fillColor="#FFFFFF"android:fillType="nonZero"android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"android:strokeWidth="1"android:strokeColor="#00000000" />
</vector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/icon_do" android:state_pressed="false"/><item android:drawable="@drawable/icon_do_pressed"android:state_pressed="true"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/icon_fa" android:state_pressed="false"/><item android:drawable="@drawable/icon_fa_pressed"android:state_pressed="true"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/icon_la" android:state_pressed="false" /><item android:drawable="@drawable/icon_la_pressed" android:state_pressed="true" />
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/icon_mi" android:state_pressed="false"/><item android:drawable="@drawable/icon_mi_pressed"android:state_pressed="true"/>
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/icon_re" android:state_pressed="false" /><item android:drawable="@drawable/icon_re_pressed" android:state_pressed="true" />
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/icon_si" android:state_pressed="false" /><item android:drawable="@drawable/icon_si_pressed" android:state_pressed="true" />
</selector>
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android"><item android:drawable="@drawable/icon_so" android:state_pressed="false" /><item android:drawable="@drawable/icon_so_pressed" android:state_pressed="true" />
</selector>
结果
Android_弹钢琴(多媒体应用)相关推荐
- html怎么更改手势手型,弹钢琴时纠正手型手势的正确方法
在学琴的初期,就应特别注重正确手型的训练.努力防止一些不良习惯的养成,这样就可以避免将来再走纠正错误手型的弯路.今天学习啦小编为大家带来纠正弹钢琴时纠正手型手势的正确方法,希望能够帮到大家. 弹钢琴时 ...
- 机器人唱歌bgm_变形金刚5所有背景乐插曲盘点 长老机器人弹钢琴BGM是什么歌
变形金刚5里的很多背景乐还是非常的燃烧的,特别是配合各种打斗场景时,是各种的燃烧,血脉偾张啊,想必已经有观众在关心这部电影里的很多歌了吧,特别是长老弹奏时的背景乐. 长老机器人弹管风琴的那个音乐是什么 ...
- 不用电路控制的机器人!加州大学开发出气动逻辑系统,能用意想不到的方式弹钢琴...
明敏 发自 凹非寺 量子位 报道 | 公众号 QbitAI "脑袋"里只有空气,就能弹奏出8小节的乐章. 这个软体机器手弹钢琴,核心居然全靠空气驱动. 最近,加州大学河滨分校的学者 ...
- 用计算机弹琴琴谱,在电脑上弹钢琴的软件
真钢琴很贵,大多数人家都没有钢琴,您是否想在电脑上弹钢琴呢?特此本站发布一款非常好用的在电脑上弹钢琴的软件,希望大家喜欢.使用该电脑弹钢琴软件您可以使用普通的电脑键盘演奏出美妙的钢琴曲并且自带音色库. ...
- 钢琴节奏时值测试软件,弹钢琴时把握节奏的正确方法
音乐的节奏是指由音值的长短与强弱拍位所构成的运动形式.节奏是音乐的灵魂,节奏是音乐的脉搏,音乐的生命,音乐的骨架.今天学习啦小编为大家带来弹钢琴时把握节奏的正确方法,希望能够帮到大家. 弹钢琴时把握节 ...
- Android钢琴滑动代码,Android实现简易版弹钢琴效果
本文实例为大家分享了Android实现弹钢琴效果展示的具体代码,供大家参考,具体内容如下 目标效果: 1.drawable下新建button_selector.xml页面: 2.drawable下新建 ...
- 弹钢琴flash游戏
转自阿一: 利用弹钢琴flash游戏,弹出动人的歌曲,一边泡妞,一边练习打字指法,一举两得!恩,不错,不错,呵呵-- 把歌词复制到这里,方便一边看一边弹,弹弹看下面是什么歌 :-) OOSSTTS R ...
- 用计算机弹钢琴谱,flash用键盘弹钢琴,电脑钢琴谱-走啦网
用键盘弹钢琴 好玩的flash键盘钢琴:键盘上的26个英文字母分别对应着26个钢琴键,按不同的键就能听到该键对应的钢琴声,由于完全采用钢琴原声,所以弹出来的效果很真实,就像真的在钢琴旁弹奏一样.在使用 ...
- 奶爸日记-好好弹钢琴的保证书
2021年12月04日,晴天,一大早,娃娃醒来了,准备起床了,然后要把我叫起来,我很困,想补觉,跟娃娃说昨天爸爸晚班忙到很晚,回来都凌晨了,现在需要补觉呀,娃娃不依说早起要早起,不能赖床睡懒觉. 我看 ...
最新文章
- (0046) iOS开发之View的frame和bounds之解惑
- SendMessage 和 PostMessage
- CountDownLatch简介
- 网页授权有时候获取不到openid 的坑
- 05--MySQL自学教程:DDL(Data Definition Language:数据库定义语言)操作数据库中的表(二)
- 计算机网络实验数据链路层分析,计算机网络第三次实验-数据链路层
- mysql在计算机管理中的路径怎么修改_Rstudio中修改工作路径的三种方法
- uva225 回溯剪枝
- 腾讯优测优分享 | 双卡双待-工程师难言的痛
- 数据挖掘导论课后习题答案-第三章
- 大华设备无法注册EasyGBS国标视频平台,是什么原因?
- Qt +ffmpeg(vp8) 记录视频每一帧并生成webm文件格式
- 快速从B站下载视频到本地(无需安装软件)
- js怎么获取扫码枪条码_如何使用JavaScript获取扫码枪扫描得到的条形码
- leetcode-Algorithms-350|两个数组的交集II
- JavaScript实现输出100以内含7和7倍数所有数
- ckplayer,超酷网页播放器,用于集成在网站中的播放器
- 常用app URL schemes
- Mybatis框架创建逆向工程步骤
- PostGIS 快速入门