乐读文学

Android从入门到精通

乐读文学 > 科普学习 > Android从入门到精通

第126页

书籍名:《Android从入门到精通》    作者:明日科技




.getBoolean("bgsound",true);



}



}

说明:  PreferenceActivity类用于实现对程序设置参数的存储。在该Activity中,设置参数的存储是完全自动的,不需要手动保存,非常方便。

(9)在res目录下,创建一个xml目录,在该目录中添加一个名称为setting.xml的首选项资源文件,具体代码如下:








android:key="bgsound"



android:title="播放背景音乐"



android:summary="选中为播放背景音乐"



android:defaultValue="true"/>





(10)在MainActivity中,重写onPause()方法,在该方法中,调用Music类的stop()方法停止播放背景音乐,具体代码如下:

@Override



protected  void  onPause()  {



Music.stop(this);  //停止播放背景音乐



super.onPause();



}

(11)在MainActivity中,重写onResume()方法,在该方法中,调用Music类的play()方法开始播放背景音乐,具体代码如下:

@Override



protected  void  onResume()  {



Music.play(this,  R.raw.jasmine);  //播放背景音乐



super.onResume();



}

运行本实例,将显示如图10.9所示的运行结果。



图10.9 为游戏界面添加背景音乐和按键音

10.3.2 制作开场动画

例10.9   在Eclipse中创建Android项目,名称为10.9,制作开场动画。(实例位置:光盘\TM\sl\  10\10.9)

(1)修改新建项目的res\layout目录下的布局文件main.xml,将默认添加的布局代码删除,然后添加一个FrameLayout帧布局管理器,并在该布局管理器中添加一个ImageView控件,用于显示小兔子图像,另外,还需要为添加的帧布局管理器设置背景图片,具体代码请参见光盘。

(2)在res\layout目录下创建一个布局文件start.xml,在该文件中添加一居中显示的线性布局管理器,并在该布局管理器中添加一个VideoView组件,用于播放开场动画视频文件,关键代码如下:




android:id="@+id/video"



android:layout_width="wrap_content"



android:layout_height="wrap_content"  />

(3)创建一个名称为StartActivity的Activity,并重写其onCreate()方法,在该方法中,首先获取VideoView组件,并获取要播放的文件对应的URI,然后为VideoView组件指定要播放的视频,并让其获得焦点,再调用start()方法开始播放视频,最后为VideoView添加完成事件监听器,在重写的onCompletion()方法中调用startMain()方法进入到游戏主界面,具体代码如下:

video  =  (VideoView)  findViewById(R.id.video);  //获取VideoView组件



Uri  uri  =  Uri.parse("android.resource://com.mingrisoft/"+R.raw.mingrisoft);  //获取要播放的文件对应的URI



video.setVideoURI(uri);  //指定要播放的视频



video.requestFocus();  //让VideoView获得焦点



try  {



video.start();  //开始播放视频



}  catch  (Exception  e)  {



e.printStackTrace();  //输出异常信息



}



//为VideoView添加完成事件监听器



video.setOnCompletionListener(new  OnCompletionListener()  {



@Override



public  void  onCompletion(MediaPlayer  mp)  {



startMain();  //进入游戏主界面



}



});

(4)编写进入游戏主界面的startMain()方法,在该方法中创建一个新的Intent,以启动游戏主界面的Activity,具体代码如下:

//进入游戏主界面



private  void  startMain(){



Intent  intent  =  new  Intent(StartActivity.this,  MainActivity.class);  //创建Intent



startActivity(intent);  //启动新的Activity



StartActivity.this.finish();  //结束当前Activity



}

(5)打开AndroidManifest.xml文件,在该文件中配置项目中应用的Activity。这里首先将主Activity设置为StartActivity,然后再配置MainActivity,关键代码如下:




android:label="@string/app_name"



android:name="  .StartActivity  "  >

























运行本实例,首先播放指定的视频,视频播放完毕后,将进入到如图10.10所示的游戏主界面。



图10.10 游戏主界面





10.4 小 结

本章主要介绍了在Android中,如何播放音频与视频,以及如何控制相机拍照等内容。需要重点说明的是两种播放音频方法的区别。本章共介绍了两种播放音频的方法,一种是使用MediaPlayer播放,另一种是使用SoundPool播放。这两种方法的区别是:使用MediaPlayer每次只能播放一个音频,适用于播放长音乐或是背景音乐;使用SoundPool可以同时播放多个短小的音频,适用于播放按键音或者消息提示音等,希望读者根据实际情况选择合适的方法。