`

弹钢琴的一个简单程序(UI很重要)

阅读更多
效果图:




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;
        }

    }

}



声音文件我附上了:)
  • 大小: 54.6 KB
  • raw.rar (83.5 KB)
  • 下载次数: 74
分享到:
评论
11 楼 xudongjhdd 2011-07-31  
求一份 每一个按键的图片文件 及布局文件 最好给份学有源代码 
99799543@qq.com  thanks
10 楼 邱顯鈞 2011-05-26  
想請問一下介面的配置方法是如何配置的?! R.java又該如何修改?!
teddychiu79@yahoo.com.tw
thanks
9 楼 bzhao 2011-03-31  
bzhao 写道
露个脸!给个声音文件吧!

szbzhao@gmail.com
8 楼 bzhao 2011-03-31  
露个脸!给个声音文件吧!
7 楼 bzhao 2011-03-28  
ok, give the sound files, thanks for your sharing!
szbzhao@gmail.com
6 楼 Teok 2010-12-10  
单从代码的角度来看,你可以尝试改进一下,代码很冗余
5 楼 dwq1988 2010-10-11  
求一份声音文件,多谢楼主。
dongwenjjj@qq.com
4 楼 384444165 2010-10-05  
请教一下这个是否还需要图片呢,只有那个图片就可以了吗。另外求一下音乐。希望能把工程压缩一下发一下,非常感谢了,邮箱:vb.wbw@hotmail.com
3 楼 linpeng 2010-09-27  
我需要声音文件。感谢楼主!
EMAIL:497005910@qq.com
2 楼 crazyman1314 2010-08-19  
感谢楼主.EMAIL:index.crazyman@gmail.com
1 楼 aduo_vip 2010-08-16  
了解一下,lz说得很对,在Android中用户界面始终是第一位的,其次才是数据库设计,实现,程序页面的跳转,细节完善等,不知你这个程序是怎么个用法,wgh290424389@163.com

相关推荐

    Android-简易弹钢琴

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

    一个简易的躲避子弹飞机小游戏,基于最简单的java ui.zip

    一个简易的躲避子弹飞机小游戏,基于最简单的java ui 一个简易的躲避子弹飞机小游戏,基于最简单的java ui 一个简易的躲避子弹飞机小游戏,基于最简单的java ui 一个简易的躲避子弹飞机小游戏,基于最简单的java ui ...

    SDK写的弹钢琴程序

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

    微信小程序UI模板

    微信小程序UI模板是针对微信小程序开发的一系列预先设计好的用户界面元素集合,旨在帮助开发者快速构建美观、统一的用户界面,尤其是对前端设计不熟练的开发者。这些模板通常包括按钮、导航栏、列表、弹窗、图表等...

    参照Vant-Weapp开发的抖音原生小程序UI组件库.zip

    【标题】"参照Vant-Weapp开发的抖音原生小程序UI组件库"指的是一个基于Vant-Weapp设计思路创建的,专为抖音小程序设计的原生UI组件集合。Vant-Weapp是一个轻量级的小程序组件库,它在微信小程序中广泛使用,以其简洁...

    AmazeUI 弹出窗

    AmazeUI弹出窗是基于JavaScript和CSS3构建的一个轻量级、响应式的前端框架组件,主要用于实现网页上的对话框、提示框等交互效果。它提供了丰富的定制选项,可以适应不同场景下的需求,同时保持良好的用户体验。在...

    小程序各行业UI图标合集

    "小程序各行业UI图标合集"显然是一个专门为小程序设计者准备的资源包,包含了多种行业、风格的图标素材,便于设计师快速找到适合的元素,提高设计效率。 UI图标是用户界面中的重要组成部分,它们以简洁直观的方式...

    最炫酷小程序UI界面通用.rar

    总之,"最炫酷小程序UI界面通用.rar"是一个涵盖前端微信小程序完整代码的集合,它提供了炫酷的UI设计和通用性,适用于各种小程序的开发需求。无论你是想快速启动新项目,还是希望通过研究提升自己的开发技能,这个...

    微信小程序UI设计素材库(必备).zip

    微信小程序UI设计素材库是一个非常重要的资源集合,对于从事微信小程序开发和设计的人员来说,是必不可少的参考资料。这个素材库包含了大量的设计元素、模板、图标、颜色方案以及布局示例,可以帮助设计师快速构建出...

    百度智能小程序UI Kits.xd

    百度官方小程序UI组件库adobeXD格式,小程序设计必备,拿来即用

    微信小程序Color UI组件库

    由于ColorUI是一个CSS类库,所以它与微信小程序本身的JS逻辑相对独立,开发者可以灵活地结合其他JavaScript库或自定义逻辑来实现功能需求。 为了便于学习和实践,ColorUI通常会提供一个示例项目,如`colorui-demo`...

    Android应用程序UI架构 高清PTT

    在Android应用程序UI架构中,还有一个重要的服务WindowManagerService,它负责统一管理协调系统中的所有窗口,例如管理窗口的大小、位置、打开和关闭等。这个PPT讲Android应用程序的Surface机制,阐述Activity、...

    小程序源码 小商城UI设计完善 (商城demo源码) (代码源)

    小程序源码 小商城UI设计完善 (商城demo源码) (代码源)小程序源码 小商城UI设计完善 (商城demo源码) (代码源)小程序源码 小商城UI设计完善 (商城demo源码) (代码源)小程序源码 小商城UI设计完善 (商城demo源码) ...

    微信小程序全套APP UI PSD设计素材.zip_MAC 小程序UI_app psd_modern47z_ui psd_ui素

    设计素材,用于微信小程序的设计,可以实现微信小程序的快速开发。

    可视化小程序UI设计工具layout.zip

    【可视化小程序UI设计工具layout.zip】是一个包含32位和64位版本的软件压缩包,主要用于帮助用户进行小程序的用户界面(UI)设计。在当前的数字化时代,UI设计对于提升用户体验至关重要,尤其是在微信小程序这样的...

    星宿UI2.4资源付费变现小程序是一款基于微信平台的小程序,支持通过资源下载和文章付费等方式变现

    星宿UI2.4资源付费变现小程序是一款基于微信平台的小程序,支持...无论您是一个个人创作者,还是想在资源变现方面开展业务的团体机构,星宿UI2.4资源付费变现小程序都是您值得关注的利器[教程有logo,不方便上传,请谅解]

    ColorUI-小程序原生高颜值组件库--ColorUI组件库.zip

    ColorUI迎来了2.0的升级,相比之前的版本,2.0版本重构了基础代码,增加了更多的配色,这是一个全新的小程序UI解决方案。ColorUI是一个Css类的UI组件库!不是一个Js框架。相比于同类小程序组件库,ColorUI更注重于...

    symbian的ui程序框架

    一个典型的Symbian UI应用程序由以下几个关键组件构成: - **Application**: 应用程序类,是程序的入口点,负责初始化、运行和退出应用程序。它通常继承自CEikApplication。 - **AppUi**: 应用程序用户界面类,是...

    iOS 弹幕UI类

    2. 创建视图:接着,创建一个自定义UIView子类,如`DMBulletView`,它将承载每个弹幕。在这个类中,我们需要重写`drawRect:`方法,根据数据模型绘制弹幕文本。 3. 动画实现:在`DMBulletView`中,使用`...

Global site tag (gtag.js) - Google Analytics