A. 项目描述
本项目主要实现了【钢琴键盘的模拟】、【弹奏引导】以及【乐曲库】等功能。
钢琴键盘模拟:提供全尺寸键盘,并且根据用户的喜好来调整键盘的颜色样式。
弹奏引导:用户可以根据键盘上的提示符号 来学习演奏。对于钢琴萌新/小白来说这个功能太方便了,可以像老手一样轻松弹奏各种曲目。
乐曲库:内置了曲谱,包括经典音乐、流行歌曲。用户可以跟随引导演奏这些曲目。
总之,这个app可以使得学习钢琴变得有趣和便捷,无论是钢琴初学者还是已经有一定经验的音乐爱好者,都可以从中受益。
B. 开发工具
- Android Studio Dolphin | 2021.3.1 Patch 1
- Java , JDK 11.0.13
- Gradle , gradle-7.4
C. 功能设计
钢琴键盘模拟
PianoCanvasView
类实现了钢琴键盘的绘制,它继承SurfaceView
,可以在服务器托管网子线程中更新UI;
-
draw_all_keys
方法,绘制了钢琴的所有键;
void draw_all_keys(final Canvas canvas) {
// 重置 canvas
{
服务器托管网 Paint p = new Paint();
p.setColor(Color.BLACK);
canvas.drawPaint(p);
}
if (KEY_COLORS == null || null == PRESSED_KEY_COLORS || KEY_COLORS.length
-
onTouchEvent
方法捕捉屏幕上手指按下、抬起等动作;
弹奏引导
app通过在钢琴键上绘制手指符号()来引导用户弹奏曲目,用户每按下一个键就发出一个对应的琴音。跟随着手指符号()的变化,用户就可以弹奏出一个完整的曲调了。
- 在
PianoConst
类中,note2keyIdx
常量就保存了音符与琴键位置的映射关系; - 在
Piano
类中,updateMelodyFromAssets
方法将乐曲资源转换成音符集合; - 通过
Piano
类的draw_emoji_on_piano_key
方法将引导手指符号()绘制在对应的琴键上。
private void draw_emoji_on_piano_key(PianoCanvasView piano, Canvas canvas, int key_idx) {
if (piano == null || canvas == null || key_idx
乐曲库
乐曲库是内置的,在assets/jsongs
目录下,json
格式文件保存;
乐曲选择界面是 SongsActivity
,使用RecyclerView
展现乐曲列表,供用户选择;
D. 项目演示
演示视频
E. 项目源码
关注公众号『数字森林』,后台发送:弹钢琴,获取源码。
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
目录 简介 专栏目录 内容 第一步:搭建框服务器托管网架 第二步:构思 第三步:筛选服务器托管,北京服务器托管,服务器租用 http://www.f服务器托管网wqtg.net相关推荐: Javascript模板引擎模板引擎的主要功能就是把变化的数据融入到不变…