基于Android平台的手机音乐播放器的设计与实现
图5-7 创建项目
创建项目后,点击 示。
打开Android系统的虚拟机,虚拟机启动后,如图5-8所
图5-8 Android手机模拟器
虚拟机打开以后将下载好的音乐文件放到tomcat的work文件下,并启动tomcat,点击eclipse编译器上的DDMS,点击File Explorer,打开mut文件夹,将另一份下载的音乐文件musiconline退拽到sdcard文件夹下,结果如图5-9。
- 22 -
图5-9 虚拟机的sdcard
准备工作就已经准备好了,接下来就可以设计程序了。
Android的四大基本组件:Activity(活动),Service(服务),BroadcastReceiver(广播),ContentProvider(内容提供者),各组件之间要进行切换需要一个意图或企图Intent类,通过启动StartIntent()方法来使各组件进行跳转。
Android的五大布局方式:LinearLayout(线性布局) 、FrameLayout(帧布局) 、TableLayout(表格布局) 、AbsoluteLayout(绝对布局) 、RelativeLayout(相对布局)。 五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。 Android的线程,以及线程之间通信的中介:Handler类。
Android配置文件:AndroidManifest.Xml及res资源文件中各种属性布局方式引用的资源等。
Android系统将插件ADT集成到了Eclipse工具上,因此,一个Android程序启动后,系统会启动一个模拟器(Emulator),该模拟器是一款手机板的样式,拥有手机硬件的基本操作。我们也可以将右边的键盘通过代码属性设置将其隐藏,界面的大小可自由设定,目前最大支持800*600的分辨率。
3. Android工程程序结构
Android工程基本结构目录包括:src (源代码):Java编写代码的地方、gen(Android系统自动生成的常量)、Res(资源文件):主要存放程序界面的布局配置(.xml)文件和图片资源。AndroidMainfes.xml 是四大组件的驱动配置文件,注册四大组件,非常主要,有它的存在,Android程序的四大组件才可以正常的跳转。Android资源的类型和布局,表2-1。
- 23 -
基于Android平台的手机音乐播放器的设计与实现
表5-1 资源的类型和布局表
目录结构 res/drawable res/layout res/values res/xml
资源类型 一些位图文件 XML布局文件 XML资源文件 XML文件
下图5-10音乐播放器代码结构和各界面的配置文件,为一个Android工程所必须的结构,src文件下的内容为该播放器的.Java文件,gen文件为播放器所用到的字符串,字体大小,字的颜色等配置文件,它是自动生成的。Android 2.3.3为该播放器的所用到的所有jar包。
图5-10 项目的各配置文件
3. AndroidManifest.xml文件
Android系统的任何一个程序启动都需要AndroidManifest.xml来启动程序,任何一个新建的工程目录都会自动生成一个AndroidManifest.xml文件,此配置文件是整个程序能够正常运行的核心,它里面包含了Android SDK的版本,程序运行的默认Activity,当程序中的任何一个组件触发事件后,系统都会自动的去AndroidManifest.xml中寻找标识来作出相应的操作。任何一个AndroidManifest.Xml文件的格式都应为:
- 24 -
Android系统有一个编码的规定,支持的编码是\,当程序中出现乱码是,我们须将其编码格式转化为\在 AndroidManifest.xml中会在第一行声明一句:
在application元素我们定义Android:icon=\。这个icon是系统默认自带的.png格式的图片。当让开发者可以在drawable中发很多图片,格式目前只支持.png、.jpg格式的图片。
Android:label=\,Android:icon是程序在手机中显示的图片,我们运用@drawable/icon表示了对res/drawable目录下的icon.png的引用。@string/app_name表示了对res/value目录下string.Xml中定义的app_name参数的引用。 android:name=\
这是系统确定的首先要启动的Activity是.ActivitySplash。 在intent-filter选项中,有action和category等等属性,我们需要定义action的值为Android.intent.action.MAIN,category的值为Android.intent.category.LAUNCHER,它们是系统的值,程序在解析到这些常用后就可以确定首先要启动的Activity。当我们需要通过一个组件触发另一个组件时,我们将设定action和category的其它属性值,系统会根据我们设定的属性值去AndroidManifest.Xml的application 中寻找标识,任何一个Activity的action和category是唯一,所以程序在任何时候都能唯一启动一个Activity,这样,不同的Activity之间的跳转就实现了。 在AndroidManifest.Xml中有一个根结点 - 25 - 基于Android平台的手机音乐播放器的设计与实现 如果我们需要对网络进行访问,比如打开一个网页,刚我还需要设置一个网络访问权限uses-permission,将其的值设置为Android:name=\,我们就可以访问网络了。当然uses-permission还有很多其它的权限,例如GPS定位权限,浏览器数据存取权限com.Android.browser.permission.READ_HISTORY_BOOKMARKS等等。 当程序的任何一个组件要用到时,都必须在AndroidManifest.Xml文件中声明。四大组件要使用前都需要声明,其声明方式如下: 其中声明provider时还需要声明其授权 authorities。每个组件里面还有很多的属性,会根据程序的具体需要定义不同的属性。过滤器intent-filter 有两种启动方式来启动界面: (1)显示方式 显示方式是在代码中的直接启动组件,启动时会声明Intent,在它的构造方法Intent(组件1,组件2)中直接指定一个组件的名字,然后调用方法startIntent(intent)以启动指定的组件。 (2)隐式方式 隐式方式是通过过滤器来过滤完成的,启动的组件必须满足action和category的条件才能够启动该组件。这些属性是在AndroidManifest.Xml文件中声明的。两种启动方式都可以通过程序setAction(ACTION常量)和startActivity(intent)或配置文件两种方式来实现组件的跳转。 5.2 播放器界面设计 5.2.1 动画设计 创建项目后,在项目下的res文件下的layout文件下新建.xml文件,文件名字为splash,在这里编写动画界面设计,在splas.xml文件中编写如下代码。