`
abc20899
  • 浏览: 933424 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

android弹钢琴的一个简单程序(转载)

阅读更多
package com.example;


import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageButton;
import android.widget.Toast;
import android.view.View;
import android.view.MotionEvent;
import android.media.MediaPlayer;


/**
* @author: ZhangFL
*/
public class Piano extends Activity {


    private ImageButton imageButton_white1;
    private ImageButton imageButton_white2;
    private ImageButton imageButton_white3;
    private ImageButton imageButton_white4;
    private ImageButton imageButton_white5;
    private ImageButton imageButton_white6;
    private ImageButton imageButton_white7;
    private ImageButton imageButton_white8;


    private ImageButton imageButton_black1;
    private ImageButton imageButton_black2;
    private ImageButton imageButton_black3;
    private ImageButton imageButton_black4;
    private ImageButton imageButton_black5;
    private MediaPlayer mediaPlayer01;


    @Override
    protected void onCreate(Bundle bundle) {
        super.onCreate(bundle);
        setContentView(R.layout.main);


        mediaPlayer01 = new MediaPlayer();
//        mediaPlayer01 = MediaPlayer.create(Piano.this, R.raw.white1);


        imageButton_white1 = (ImageButton) findViewById(R.id.white1);
        imageButton_white2 = (ImageButton) findViewById(R.id.white2);
        imageButton_white3 = (ImageButton) findViewById(R.id.white3);
        imageButton_white4 = (ImageButton) findViewById(R.id.white4);
        imageButton_white5 = (ImageButton) findViewById(R.id.white5);
        imageButton_white6 = (ImageButton) findViewById(R.id.white6);
        imageButton_white7 = (ImageButton) findViewById(R.id.white7);
        imageButton_white8 = (ImageButton) findViewById(R.id.white8);


        imageButton_black1 = (ImageButton) findViewById(R.id.black1);
        imageButton_black2 = (ImageButton) findViewById(R.id.black2);
        imageButton_black3 = (ImageButton) findViewById(R.id.black3);
        imageButton_black4 = (ImageButton) findViewById(R.id.black4);
        imageButton_black5 = (ImageButton) findViewById(R.id.black5);


        imageButton_white1.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {


                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.white1);
                    imageButton_white1.setImageResource(R.drawable.whiteback1);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_white1.setImageResource(R.drawable.white1);
                }
                return false;
            }
        });




        imageButton_white2.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {


                    play(R.raw.white2);
                    imageButton_white2.setImageResource(R.drawable.whiteback2);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_white2.setImageResource(R.drawable.white2);
                }
                return false;
            }
        });
//
        imageButton_white3.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.white3);
                    imageButton_white3.setImageResource(R.drawable.whiteback3);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_white3.setImageResource(R.drawable.white3);
                }
                return false;
            }
        });


        imageButton_white4.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.white4);
                    imageButton_white4.setImageResource(R.drawable.whiteback4);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_white4.setImageResource(R.drawable.white4);
                }
                return false;
            }
        });


        imageButton_white5.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.white5);
                    imageButton_white5.setImageResource(R.drawable.whiteback5);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_white5.setImageResource(R.drawable.white5);
                }
                return false;
            }
        });


        imageButton_white6.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.white6);
                    imageButton_white6.setImageResource(R.drawable.whiteback6);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_white6.setImageResource(R.drawable.white6);
                }
                return false;
            }
        });


        imageButton_white7.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.white7);
                    imageButton_white7.setImageResource(R.drawable.whiteback7);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_white7.setImageResource(R.drawable.white7);
                }
                return false;
            }
        });


        imageButton_white8.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.white8);
                    imageButton_white8.setImageResource(R.drawable.whiteback8);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_white8.setImageResource(R.drawable.white8);
                }
                return false;
            }
        });


        imageButton_black1.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.black1);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_black1.setImageResource(R.drawable.black1);
                }
                return false;
            }
        });


        imageButton_black2.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.black2);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_black2.setImageResource(R.drawable.black2);
                }
                return false;
            }
        });


        imageButton_black3.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.black3);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_black3.setImageResource(R.drawable.black3);
                }
                return false;
            }
        });


        imageButton_black4.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.black4);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_black4.setImageResource(R.drawable.black4);
                }
                return false;
            }
        });


        imageButton_black5.setOnTouchListener(new View.OnTouchListener() {
            public boolean onTouch(View view, MotionEvent motionEvent) {
                if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
                    play(R.raw.black5);
                }
                if (motionEvent.getAction() == MotionEvent.ACTION_UP) {
                    imageButton_black5.setImageResource(R.drawable.black5);
                }
                return false;
            }
        });
//
//
        mediaPlayer01.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
            public void onCompletion(MediaPlayer arg0) {
                mediaPlayer01.release();
                mediaPlayer01 = null;
                Toast.makeText(Piano.this, "资源释放了!", Toast.LENGTH_SHORT).show();
            }
        });


        mediaPlayer01.setOnErrorListener(new MediaPlayer.OnErrorListener() {
            public boolean onError(MediaPlayer arg0, int i, int i1) {
                try {
                    mediaPlayer01.release();
                    Toast.makeText(Piano.this, "发生错误了!", Toast.LENGTH_SHORT).show();
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return false;
            }
        });




    }


    //-------------------------------------------------------------------------------------
    private void play(int resource) {
        try {


            mediaPlayer01.release();
            mediaPlayer01 = MediaPlayer.create(Piano.this, resource);
            mediaPlayer01.start();
        } catch (Exception e) {
            Toast.makeText(Piano.this, "发生错误了:" + e.getMessage(), Toast.LENGTH_SHORT).show();
        }
    }




    @Override
    protected void onDestroy() {
        super.onDestroy();
        if (mediaPlayer01 != null) {
            mediaPlayer01.release();
            mediaPlayer01 = null;
        }


    }


}
分享到:
评论

相关推荐

    Android-简易弹钢琴

    Android平台上的“简易弹钢琴”应用程序是一个创新的移动娱乐软件,它将传统的钢琴体验与现代科技结合,使用户能够在手机上享受弹奏音乐的乐趣。这款应用设计简洁,易于操作,适合音乐爱好者和初学者使用。 在...

    Android 电子钢琴源码_电子钢琴_android模拟钢琴小程序源码_android源码_钢琴代码_钢琴_

    这个"Android电子钢琴源码"项目,正如其标题和描述所示,提供了一个简单的模拟Android钢琴的程序源码,适用于学习者或开发者想要了解如何在移动设备上实现音乐演奏功能。 首先,我们需要了解Android应用开发的基础...

    android小钢琴程序

    开发者可能使用Android的`View`系统创建钢琴键盘布局,每个琴键都是一个可点击的按钮,当用户触摸时,触发对应的音符播放。 4. **多线程**: 为了保证用户交互的流畅性,音符的播放通常在后台线程中执行,避免阻塞...

    第一个Android程序

    第一个Android程序,第一个Android程序第一个Android程序,第一个Android程序

    Android实现简易版弹钢琴效果

    Android实现简易版弹钢琴效果是一种基于Android平台的音乐播放技术,通过使用SoundPool和AudioManager来播放音频文件。下面是实现简易版弹钢琴效果的知识点: 1. Drawable资源文件:在Android中,我们可以使用...

    基于android的钢琴软件.rar

    1、钢琴软件的app软件 2、实现各种琴谱的选择,根据用户按键发出声音,录制弹奏的乐曲,音频播放,视频播放等功能。 3、实现C/S架构,采用json解析数据 4、美观的界面,温和的主题颜色 5、适合于毕业生以及开发工作...

    字母弹钢琴小游戏Android项目应用源码

    字母弹钢琴小游戏Android项目应用源码

    android简易钢琴

    通过以上步骤,你就可以创建一个基本的Android简易钢琴应用。然而,为了打造更专业、功能更丰富的钢琴应用,你可能还需要学习更多高级技巧,比如音乐理论、自定义动画、实时音频处理等。持续学习和实践,将使你的...

    SDK写的弹钢琴程序

    本篇文章将深入探讨如何利用SDK来编写一个弹钢琴程序,特别适合初学者学习和实践。 首先,我们要理解SDK在开发过程中的作用。SDK通常包含API(Application Programming Interface),这些接口定义了开发者可以调用...

    android 小钢琴

    《Android小钢琴应用详解》 在移动设备上开发一款音乐应用,如“Android小钢琴”,是一种结合技术与艺术的创新实践。本篇文章将深入探讨这一应用背后的技术原理、实现细节以及如何通过源码来理解其功能。 首先,...

    android小程序-电子钢琴-多点触控

    在本项目中,我们探索的是一个Android小程序,它是一个电子钢琴应用,支持多点触控功能,从而允许用户同时按下多个琴键,创造出更丰富的音乐效果。开发者在原有的7键钢琴基础上进行了扩展,添加了低音区和高音区,以...

    Android 小钢琴源码.zip

    Android小钢琴应用是一款在Android平台上运行的音乐类软件,它允许用户通过触摸屏幕上的琴键模拟真实钢琴的声音,提供一个趣味性和教育性兼备的娱乐体验。源码分析将主要围绕以下几个核心知识点展开: 1. **用户...

    Android程序研发源码Android 小钢琴源码.rar

    【Android程序研发源码分析——Android小钢琴】 在Android应用开发中,源码学习是提升技术能力的重要途径。本篇文章将深入探讨“Android小钢琴”应用的源码,旨在解析其设计思路、关键技术以及实现原理,帮助开发者...

    Android代码-小钢琴源码.zip

    【Android代码-小钢琴源码.zip】是一个包含Android应用程序开发的源代码压缩包,主要针对的是一个名为"小钢琴"的趣味应用。这个项目可能是为了教授基础的Android编程概念,或者是为了开发一个可以让用户在手机上模拟...

    android键盘钢琴

    【Android 键盘钢琴】项目是一个自行开发的Android应用程序,旨在模拟真实的钢琴体验,让用户能够在手机上享受演奏的乐趣。这个项目充分利用了Android平台的特性,将触摸屏与音乐结合,为用户提供了直观且富有创意的...

    搭建Android开发环境和构建第一个Android程序(Android studio版)

    本教程将详细介绍如何在Windows操作系统上使用Android Studio搭建开发环境并创建第一个Android程序。 首先,确保你已经安装了Java Development Kit (JDK),因为Android开发离不开Java语言的支持。在安装Android ...

    资源:【Android-钢琴模拟实现】

    资源:【Android-钢琴模拟实现】

    Android代码-[安卓开源]安卓手机钢琴模拟器项目.zip

    【标题】"Android代码-[安卓开源]安卓手机钢琴模拟器项目.zip" 提供的是一个开源的安卓应用程序,它实现了一个手机上的钢琴模拟器。这个项目是Android开发人员学习和研究移动应用开发,尤其是音乐类应用开发的一个好...

    Android开发一个简单的钢琴APP.zip

    本文将以“Android开发一个简单的钢琴APP”为主题,深入探讨其背后的开发过程和技术要点,帮助读者理解如何在Android平台上创建一个互动式的音乐应用。 首先,我们要明白,Android应用开发主要基于Java或Kotlin语言...

    android做一个点击菜单弹出来的动画

    本文将深入讲解如何在Android应用中实现一个点击菜单时弹出的动画效果,同时结合多种动画组合,为用户提供更为丰富的视觉体验。 首先,我们要明白Android中的动画可以分为两类:视图动画和属性动画。视图动画主要...

Global site tag (gtag.js) - Google Analytics