版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、摘 要当今的世界是一个信息极大丰富的世界,所以人们对于各种信息的获取都有着强烈的需求。人们往往会借助报纸、手机、电视、网络等方式来获取和处理各种信息。随着科技的发展,手机作为一种非常重要的通讯工具,其功能越来越强大,相对电视,网络等方式,手机凭借着它的便携性和处理信息的优势,日益成为人们获取信息的一种重要手段。但是实际上并不是所有的手机都可以满足人们这种相对复杂的功能要求,而智能手机由于强大的功能令其成为所有手机中最好的选择。目前市场上的智能手机有几大类,分别是symbian、windows mobiile、linux、黑莓。不过近两年来上市的Android操作系统由于具有良好的开放性和平台开
2、发的便捷性等特点,使得采用Android的手机愈加受到人们的青睐。在此同时,Android操作系统的手机在智能手机领域所占的比重越来越重。所以,我将Android系统下的五子棋小游戏作为本次毕业设计研究对象。关键词:Android;智能手机;五子棋小游戏;操作系统。AbstractNowadays,there is abundant information in the world,people have a strong demand for the access to different information.We tend to get and process information
3、through newspaper,mobile phone,TV and Internet.With the development of science and technology,as a very important communication tool,the mobile phone has a more and more powerful function.The mobile phone is becoming an important means of getting information because it has an advantage on portabilit
4、y and information processing when compare to TV,Internet and other means. In fact,not every mobile phone can satisfy peoples needs of relatively complicated function,the smartphone is proved to be the best choice as its powerful function.For now,there are several categories of smartphone in the mark
5、et,they are symbian,windows mobile,linux,blackberry.But the mobile phone using Android as its operating system has get an increasing favour of people.At the same time,the proportion of mobile phone using Android in smartphone is becoming more and more high.So,I choose the five chess game under the A
6、ndroid as the object to design and study.Keywords:Android; smart phones; Gobang Game; operating system目 录TOC o 1-3 h u HYPERLINK l _Toc12111 前 言 PAGEREF _Toc12111 1 HYPERLINK l _Toc2419 第一章 Android开发平台的搭建 PAGEREF _Toc2419 2 HYPERLINK l _Toc22081 第一节 Android系统的由来 PAGEREF _Toc22081 2 HYPERLINK l _Toc8
7、600 第二节 Android系统平台的架构组成 PAGEREF _Toc8600 2 HYPERLINK l _Toc8191 一、第一层Applications,应用程序集合 PAGEREF _Toc8191 2 HYPERLINK l _Toc25210 二、第二层Application Framework,应用程序框架 PAGEREF _Toc25210 3 HYPERLINK l _Toc1323 三、第三层Libraries(函数库)和Android rutime(运行环境) PAGEREF _Toc1323 3 HYPERLINK l _Toc13598 四、第四层Linux K
8、ernel PAGEREF _Toc13598 4 HYPERLINK l _Toc6624 第二节 Android开发环境的特点 PAGEREF _Toc6624 4 HYPERLINK l _Toc6076 第三节 Android开发环境的搭建 PAGEREF _Toc6076 4 HYPERLINK l _Toc15343 一、建立java环境 PAGEREF _Toc15343 5 HYPERLINK l _Toc20335 二、 Eclipse和Android SDK的安装 PAGEREF _Toc20335 5 HYPERLINK l _Toc18515 三、 更新Eclipse,
9、安装Android开发插件ADT PAGEREF _Toc18515 6 HYPERLINK l _Toc26730 四、设置开发平台的环境变量 PAGEREF _Toc26730 7 HYPERLINK l _Toc14605 五、 Android AVD的配置 PAGEREF _Toc14605 7 HYPERLINK l _Toc219 第二章 Android平台五子棋手机游戏 PAGEREF _Toc219 8 HYPERLINK l _Toc22271 第一节 五子棋游戏的介绍 PAGEREF _Toc22271 8 HYPERLINK l _Toc31713 第一节 五子棋游戏的功
10、能框架 PAGEREF _Toc31713 8 HYPERLINK l _Toc18303 第三节 五子棋的游戏界面 PAGEREF _Toc18303 8 HYPERLINK l _Toc25925 一、 手机界面 PAGEREF _Toc25925 8 HYPERLINK l _Toc15299 二、游戏开始界面 PAGEREF _Toc15299 9 HYPERLINK l _Toc21454 三、实现介绍对话框 PAGEREF _Toc21454 14 HYPERLINK l _Toc30794 四、添加游戏菜单 PAGEREF _Toc30794 19 HYPERLINK l _To
11、c18286 五、退出游戏 PAGEREF _Toc18286 23 HYPERLINK l _Toc23790 六、开始游戏 PAGEREF _Toc23790 23 HYPERLINK l _Toc10646 设计总结及心得 PAGEREF _Toc10646 26 HYPERLINK l _Toc6738 参考文献 PAGEREF _Toc6738 28 前 言所谓智能手机,就是指类似于个人电脑,具备独立的操作系统,且可以由用户自行安装软件、游戏等程序以此不断对手机进行扩充,并可以通过移动网络或3G网络来实现网络接入的这样一类手机总称。其实,智能手机除了具备手机的通讯功能外,同时也具备了
12、PDA的大部分功能,尤其是个人信息管理以及基于无线数据通信的浏览器,gps和电子邮件等功能。智能手机可以为用户提供足够大的屏幕和带宽,既方便随身携带,有为软件的运行和内容服务提供了较大的平台,很多增值业务如:交通、股票、天气、商品、新闻、音乐图片下载、应用程序下载、等等,都可以就此展开。而且时下正在推广的3G网络使得智能手机势必将成为一个功能强大,集通话、短信、网络接入、影视娱乐于一体的综合性个人手持终端设备。智能手机常见的操作系统有很多种,按市场占有力和影响力来说主要有symbian、ios、windows mobile、linux os、黑莓、Android os这五种不同的智能手机操作系
13、统。Symbian是目前市场上占有率最高的也是应用范围最广的智能手机操作系统具有功耗低、内存占用少等特点。Windows mobile是微软为智能移动终端设备使用的操作系统,它将用户熟悉的windows桌面扩展到手机上,也正是由于这一点windows mobile 同时继承了windows的功能强大的性质。Linux os凭借其自由、免费、开放源代码的优势、经过来自互联网和遍布全球的程序员的努力他的发展将不容忽视,不过linux对于硬件的要求较高,使得linux的发展差强人意。Android os其实也是基于linux的一个操作系统,是有google开发的,相对于其他的操作系统来说是真正意义上
14、的开放性移动设备平台。Android os包括操作系统、用户界面和应用程序等移动电话工作所需的全部组件,而且不存在任何以往阻碍移动产业创新的专有权障碍。作为近两年才出现的智能手机操作系统,Android操作系统无疑还不太成熟,但是在HTC(宏达电子) 摩托罗拉、三星、已经国内联想、化为、中兴等多家智能手机制造商不断推出基于Android操作系统的智能手机,使得Android操作系统的市场份额以及影响力日益增强,前景越来越好。其最大的特点是开放性,Android是以开源linux系统为基础,且在第三方软件的开放程度上并不严格把关。本次毕业设计侧重于开发Android的五子棋游戏界面设计。本次毕业
15、设计的主要内容有以下几个方面:Android开发环境的搭建2、Eclipse和Android SDK的安装3、更新eclipse、安装Android开发插件ADT4、设置开发平台的环境变量第一章 Android开发平台的搭建第一节 Android系统的由来 Android是google于2007年11月5日,开发的基于linux2.6核心的开源智能手机操作系统。它包括三个重要的组成部分、操作系统、用户界面和应用程序,包含了移动电话工作所需要的全部软件,并且不存在任何以往例如专有权等阻碍移动产业创新的障碍。第二节 Android系统平台的架构组成具体Android框架结构图如下: 图ndroid
16、系统框架结构图Android系统的整体架构依次分为以下四个层次:一、第一层Applications,应用程序集合Applications层是Android系统用户应用层,是Android系统自带的一系列以java语言编写的核心应用程序的集合,它包括电子邮件程序、SMS短消息程序、日历、地图、联系人管理程序等等。这是Android系统给用户提供的手机基本功能的软件集合。二、第二层Application Framework,应用程序框架Application Framework是Android平台专门为应用程序的开发儿设计的,它可以允许开发人员完全访问核心应用程序所使用的API框架。该应用程序的架
17、构设计简化了组件的重用;任何一个应用程序都可以发布它的功能模块、并且任何其他的应用程序都可以使用其发布的功能模块(不过须遵循框架的安全限制)。同样的,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统,包括:丰富且可拓展的视图,可以用来构建应用程序,它包括列表、网络、文本框、按钮,甚至可嵌入的web浏览器。内容提供器使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。资源管理器提供非代码资源的访问,如本地字符串,图形和布局文件。通知管理器使得应用程序可以在状态栏中显示自定义的提示信息。活动管理器用来管理应用程序的生命周期并
18、提供常用的导航回退功能。三、第三层Libraries(函数库)和Android rutime(运行环境)这一层分为两个部分,第一部分为核心库,该核心库提供了JAVA编程语言核心库的大多数功能。第一部分,核心函数库。Android提供包含一些C/C+库,这些库能被Android系统中不同的组件使用。该核心库提供了JAVA编程语言核心库的大多数功能。它通过Android应用程序框架为开发者提供服务。Android平台的核心函数库包括:1、Surface Manager(外观管理员):主要的功能是让开发者可以去存取显示系统及管理的功能,在显示和存取操作间的对应、互动以及实现无接缝的2D/3D多应用程
19、序之间的整合。例如:在2D、3D显示上的合成、迭合动作。2、Open GLES:基于OpenGL ES 1.0APIs实现:主要是依OpenGL ES1.0规范所定义的3D绘图引擎。该库可以将硬件的3D功能做最佳的处理显示,可以使用硬件加速3D加速或者使用高度优化的3D软加速。3、SGL:主要是处理有关显示2D方面的绘图引擎。4、Media Framework:主要是以PacketVideo公司的OpenCORE为基础所发展或多媒体函式库,有支持多种声音及图像格式。5、SSL:是Secur Socket Layer的缩写,主要是处理有关保护网页通讯的协议。6、Free Type:主要是处理有关
20、显示位图及向量字形方面的处理。7、SPLite数据库:SQLite数据库也是一套开放性原始码的关联式数据库,其特点在于轻量性方面的设计结构,更适合在手机上使用。8、Web Kit:是一个的网页浏览器引擎,让Android发展出专属的浏览器,也可以让开发者利用这个引擎做出不同的应用。9、libc:就是BSD标准系统C函式库。但是,针对Linux嵌入式装置进行过最佳化的调整。第二部分,Dalvik虚拟机。Dalvik虚拟机主要用来为Android应用程序的提供运行环境,其作用相当于JVM。在运行Android中的每一个应用程序,都运行在它自己的环境当中,都拥有一个独立的Dalvik虚拟机实例。另外
21、,为适应手机特殊的运行环境Dalvik都被设计成一个可以同时高校的运行多个虚拟系统的设备。 四、第四层Linux Kernel这一层是系统内核层,Android的内核采用的是linux2.6内核,它主要用于保障安全性、内存管理、进程管理、网络协议栈和驱动模型等等。同时linux内核也作为硬件和软件栈之间的抽象层,作为两者沟通的桥梁。内核层所提供服务为核心系统服务,具体包括以下五个部分:1、安全性2、内存管理3、线程管理4、网络堆栈5、驱动程序模型为了便于分析和研究,可以将应用程序和应用程序框架称为应用层,主要面向Android应用程序开发人员和手机用户,而把Android函数库、运行环境和li
22、nux内核称为核心层,它主要是面向真个系统的。第二节 Android开发环境的特点Android作为一个开放式的平台,理论上可以在其上开发基于多种语言的应用程序。但是Android平台将JAVA语言作为它的官方语言,这无不是考虑到java语言的强大功能和极佳的平台适应性,也是基于如此考虑Android平台上绝大多数程序都是基于java程序。Eclipse作为时下最流行的java开发工具之一,其良好的开放性、开发效率高、便于使用的特点非常符合OHA的主旨,非常适合作为Android的开发工具来使用。另外为便于Android应用程序的开发,OHA专门为Eclipse开发了Android插件,使得开
23、发者可以方便你的使用Eclipse开发Android应用程序。基于以上两点这次毕业设计选择Eclipse作为开发工具。第三节 Android开发环境的搭建Android开发平台的建立需要依次完成以下五个步骤:1、在电脑上建立java运行环境2、安装Eclipse开发软件和Android SDK3、更行Eclipse,安装Android开发插件ADT4、设置开发平台的环境变量5、Android AVD的配置一、建立java环境Eclipse是用java语言编写的程序,因此在安装Eclipse之前必须保证系统已经建立了java环境,否则无法运行。这涉及到JRE和JDK。(1)JRE和JDK的区别J
24、RE是运行java程序必须的环境的集合,它包括JVM标准实现及java核心类库。它不包含开发工具编译器、调机器和其他工具。JDK全称Java SE Development Kit,他提供了java的开发环境和运行环境,它是java开发包、开发工具、是java应用程序的程序开发环境。因此可以说它包括了JRE。两者的一个重要区别:如果只是单纯的运行java系统只需要安装JRE,但是如果是开发java程序那么就必须要安装JDK。(2)安装最新的JDK根据(1)我们可以知道建立java环境我们必须安装JDK。最新版本的JDK版本是1.6,可以在SDN(http/downloads/)上下载然后安装到电
25、脑。二、 Eclipse和Android SDK的安装(1)Eclipse软件的下载访问Eclipse官方网站下载最新版的Eclipse(/downloads)(2)Eclipse的安装在安装过程中需要注意的是要设置Eclipse的工作空间workspace,它是开发程序相关文件的保存目录 图select workspace图(3)Android SDK的安装SDK是 Software Development Kit 一般指软件开发包,它包括程序开发中所用的函数库、编译程序等资源。Android SDK也是开发Android软件所需要的一些函数库等资源的集合包。也是我们开发Android程序必
26、须的组件之一。三、 更新Eclipse,安装Android开发插件ADT(1)ADT介绍Android ADT是专门为Eclipse开发Android程序设计的插件。ADT插件大大扩展了Eclipse集成环境功能,使得生成和调剂Android应用程序既容易又迅速。这个插件可以通过更新Eclipse来添加。(2)更新Eclipse启动Eclipse,选择helpSoftware UpdatesFind and install.弹出对话框后,选择 Search for new features to install 点击Next点击 New Remote Site添加一个新的网址。http/And
27、roid/eclipse/,点击 OK由新输入的的网址会出来一个更新的列表,点击Finish按钮,完成网址的添加。根据输入的网址会搜索到新的部件。如图: 图 1.3.1 Android SDK 更新选择Accept terms of the license agreement,点击Next,确认接受使用协议。点击Finish,会执行搜索到的资源的下载。点击Install All,安装搜索到所有的插件。安装完成后需要重新启动Eclipse,来让系统识别刚装上的插件。四、设置开发平台的环境变量开发平台的环境变量的配置包括两个部分,一个是java运行环境的环境变量设置JAVA_HOME和CLASSP
28、ATH变量,另一个就是Android SDK的tool变量。其中JAVA运行环境是为了Android SDK的tool变量。(1)设置java环境变量在桌面上邮件点击我的电脑-属性-高级-环境变量。五、 Android AVD的配置Android 1.5中引入了AVD。AVD是一个经过配置的模拟器。必须制定target,target有类型,SDK 1.5中目前有两种:platrorm,add-on。Platform是Android的平台target,add-on是Android的插件target。在创建AVD,选择target时要注意以下几个方面: (1)target的API level很重要
29、,应用的API lvevl 要=AVD的target 的API Level,否则应用程序不能运行。二应用程序的API level是在AndroidManifest.xml中定义的。(2)最好建立一个API level 最大的AVD,测试你的应用在高版本AVD之上的兼容性。(3)如果要设计的应用程序使用add-on插件。那么要部署到AVD的target需要指定为add-on类型,否则会出现错误。 至此,就完成了Android系统平台的开发环境搭建。 Android平台五子棋手机游戏第一节 五子棋游戏的介绍五子棋是一款非常经典的小游戏。五子棋是一种两人对弈的纯策略型棋类游戏,是起源于中国古代的传统
30、黑白棋种之一。发展于日本,流行于欧美。容易上手,老少皆宜,而且趣味横生,引人入胜;不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。游戏规则也很简单,通过放棋子到棋盘中,任何一方有连续五颗子连成一条线即为胜利。第一节 五子棋游戏的功能框架 图 五子棋游戏功能框架图第三节 五子棋的游戏界面一、 手机界面该界面为打开手机后的界面。 图 3.1.1 Android运行界面 二、游戏开始界面该菜单为游戏提供主要功能操作,包括“新游戏”、“继续”、“介绍”和“退出”四个菜单选项。其中新游戏选项为开始一个新的游戏,继续选项为继续上次没有完成的游戏,介绍选项为有关于这个游戏的介绍,退出游戏选项为退
31、出游戏程序。 图 五子棋游戏开始界面对于这个界面我们必须修改main.xml文件。在eclipse中双击main.xml即可打开该文件。根据eclipse的具体设置,点击main.xml后出现的可能是一个可视化的布局编辑器,或者是一个XML编辑器。在当前的ADT版本中,可视化的布局编辑器用处其实并不大,所以单机main.xml或者底部的source选项卡,查看XML文件。mani.xml文件的第一行都是显示:所有Android xml文件开头都是这行代码。这行代码只是告诉编译器,该文件是xml格式的,采用UTF-8字符集编码。出来包含针对非ASC字符的转义码以外,UTF-8字符集和常规的ASC
32、字符集几乎完全一样。接下来会看到对的引用: 布局是存放一个或多个对象及某种行为的容器,行为描述了如何将这些子对象放置在屏幕上其父对象的矩形区域中。Android中最常用的几种布局是:Framelayout(框架布局):从屏幕的左上角开始显示子对象,主要用于选项卡视图和图像切换器。Lineralayout(线性布局):以单列或单行的形式显示子对象,这是最常用的布局方式。Relativelayout(相对布局):以相对于其他子对象或父对象的位置显示子对象,这种布局通常用于表单中。Tablelayout(表格布局):以多行和多列的方式显示子对象,类似于HTML表格。各种布局常用的一些参数如下:xml
33、ns:Android=http:/schemas.A/apk/res/Android这串代码是定义Android的xml命名空间,这个参数只能main.xml文件中的第一个xml标记处定义一次。 Android:layout_height=fill_parentAndroid:layout_width=fill_parent而这一串参数是声明此布局的高度和宽度相同。可能的值有fill_parent或wrap_content标记中有一个如下所示的子对象部件:这里定义了一个简单的文本标签。打开main.xml编辑代码: 和将英语文本硬编码到布局文件中不同,使用string/resid这种语法形式引
34、用res/values/string.xml文件中的字符串。这个文件也可以有其他的写法根据区域设置或其他参数的设置情况,还可以有其他资源文件。然后代开这个文件输入代码: Hello World, wuziqi! 五子棋 五子棋 新游戏 继续 介绍 退出为了使标题文本更大一些并使其居中,让按钮变小并使用不同的背景颜色,创建一个colors.xml文件在values文件夹中,并编辑代码: #3500ffff然后运行五子棋程序我们就可以看到图 2.3 所示的结果。本次设计之所有使用xml,虽然xml是一种详细的可读格式,但在简洁和高效方面做得不太好。不过Android是针对内存和功率都有限的移动设备
35、而优化的。所以虽然在编写程序的时候使用的是xml,但是eclipse插件会调用Android资源编译器aapt,将xml文件预处理为压缩的二进制格式。移动设备中存储的正是这种压缩的二进制格式文件,而不是原始的xml文件。在测试中如果将模拟器切换到横向模式,就发现屏幕底部的退出按钮消失了 图 横向模式下,看不到退出按钮这时候我尝试调整布局,使其在各种方向模式下都能正常显示内容。但是无论怎么调整布局都不能奏效,或者看起来会很奇怪。于是我想到,重新创建一个不同的布局。重新创建一个名为layout-land/main.xml的文件,并编辑代码: 在这里使用TableLayout布局方式创建两列按钮。现
36、在再次运行程序可以看到如图界面: 图 使用特定的横向布局,所有按钮都可以正常显示Android允许使用资源后缀为任何资源制定替代版本,而不仅仅是布局。三、实现介绍对话框用户选择了介绍按钮时,表明了用户触按了屏幕上的该按钮。此时,应该弹出一个窗口,其中显示一些有关于这个游戏的一些介绍信息。在阅读完该对话框上的这些文字后,用户按下返回按钮可以关闭这个窗口。要实现这个功能,我们可以用以下方法实现:定义一个新的activity类并启动它;使用alertdialog类并显示它;子类化Android的dialog类并显示它。在本次设计中,将定义一个新的活动。和主五子棋程序的活动一样,介绍按钮的活动也需要一
37、个布局文件。将这个布局文件命名为layout/about.xml并编辑代码: 现在只需要该布局文件的一个版本就可以了,因为这个布局在纵向和横向都能够正常显示。下面将介绍对话框的标题以及对话框中包含的的文本内容添加到values/strings.xml文件: 介绍 这个游戏界面是因为即将毕业,以此为毕业设计。五子棋游戏 是当前比较流行的小游戏,只要有五颗棋子连成一条直线即胜 利。在此感谢各位老师给予的帮助和支持。 贵阳学院物电系 07电信一班 杨浩 在about_text中的反斜杠字符是避免了在第一个单词的前面出现额外的空行。 About活动应该在About.java文件中定义,只需要重新写on
38、Create()方法并调用setContentView()方法就可以了:package org.example.wuziqi;import Android.app.Activity;import Android.os.Bundle;public class about extends Activity Overrideprotected void onCreate(Bundle savedInstanceState)super.onCreate(savedInstanceState);setContentView(R.layout.about);接下来需要将这个活动和wuziqi类中的Abou
39、t按钮关联起来。首先在wuziqi.java里面添加一些导入语句: import Android.content.Intent; import Android.view.View;import Android.view.View.OnClickListener;在onCreate()方法中添加代码以调用findViewByIdeo()和setOnClickListener()方法,findViewById()方法是用在根据资源ID查找Android视图,而setOnClickListener()方法是通知Android用户点击时触发哪个对象:/* Called when the activit
40、y is first created. */ Override public void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); / Set up click listeners for all the buttons View newButton = this.findViewById(R.id.new_button); newButton.setOnClickListener(this); View continueButton
41、 = this.findViewById(R.id.continue_button); continueButton.setOnClickListener(this); View aboutButton = this.findViewById(R.id.about_button); aboutButton.setOnClickListener(this); View exitButton = this.findViewById(R.id.exit_button); exitButton.setOnClickListener(this); 以下的代码使用this作为接收方,那么wuziqi类需要
42、实现OnClickListener接口而且定义一个名字是onClick()的方法:/ . public void onClick(View v) switch (v.getId() case R.id.about_button: Intent i = new Intent(this,about.class); startActivity(i); break; / More buttons go here (if any) . 如果希望在Android启动某个活动,那么首先需要创建Intent类的实例。Android里面有两种Intent类实例:public(命名的)的Intent类实例是在系统
43、注册的,可以从任何应用中调用这个实例,private(匿名的)的Intent类实例只能在一个应用程序内使用。在本次设计中,我使用后面一种实例。现在运行这个程序,然后点击介绍按钮,结果出现错误提示: 图 3.3. 1出现的错误提示我检查了很多次程序发现程序并没错误。于是我到论坛发帖求助,很感谢论坛的大神给予的帮助。这是因为我漏掉了一个很重要的步骤:每一个新的活动都需要在Androidmanifest.xml文件中声明。所以点击Androidmanifest.xml切换到xml模式,然后在第一个活动的结束标记后面添加一个新的标记: 然后保存Androidmanifest.xml 重新运行程序,然后
44、点击介绍按钮就可以看到如图2.7所示的结果,完成后点击返回按钮就可以返回。 图 点击介绍出现的对话框这个对话框看起来还不错,不过之前看其他的程序是一种双层的模式对话框,还能看到游戏的开始面。所以要在这里应用一个主题。主题是一个样式的集合,可以用在重写Android部件的外观。Android有附带很多主题,可以通过名称引用。另外,通过子类化现有主题然后重写它的默认值也可以构造自己的主题。定义主题可以在values文件夹中建立一个styles.xml文件然后定义。但是本次设计只需要利用一个预定义的主题。要使用主题,要先打开Androidmanifest.xml文件,然后修改介绍活动的定义,让它具有
45、主题的特性:保存,在此运行程序,现在介绍对话框应该如图 2.8所示: 图 应用主题后的介绍对话框四、添加游戏菜单Android支持两种菜单:一种是在用户按下菜单键后弹出的菜单,另外一种是用户一直按住屏幕三秒后弹出的上下文菜单。本次设计需要实现第一种菜单,在用户按下菜单键后打开的游戏菜单。所以,我需要定义几个后面将要用到的字符串:设置. 游戏设置 s 音乐 播放背景音乐 提示 游戏中显示提示在res文件夹建立一个menu文件夹并在其中建立一个menu.xml文件然后定义: 然后需要修改wuziqi类,把刚刚定义的菜单加入到wuziqi类里面。所以,需要再导入一些包:import Android.
46、view.Menu;import Android.view.MenuInflater;import Android.view.MenuItem;最后重写wuziqi类里面的onCreateOptionsMenu()方法:public boolean onCreateOptionsMenu(Menu menu) super.onCreateOptionsMenu(menu); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.menu, menu); return true; getMenuInflater()方
47、法返回一个MenuInflater类的实例,使其从XML文件中读取菜单的定义,而且可以把它装换成实际的视图。用户选择菜单项的时候,将会调用onCreateOptionsMenu()方法,所以定义:public boolean onOptionsItemSelected(MenuItem item) switch (item.getItemId() case R.id.settings: startActivity(new Intent(this, Settings.class); return true; / More items go here (if any). return false;
48、 Settings是一个类,这个类可以显示所有的用户首选项并允许用户修改这些首选项的值。Android提供了方便的工具来定义这些程序首选项,而且支持在几乎不用编写代码的情况下显示这些首选项。在res文件夹中建立一个xml文件夹,在其中建立settings。xml并定义: Wuziqi程序里面有两个设置:一个用于播放背景音乐,另外一个用于显示提示信。这两个首选项的键值都是字符串常量,所以将被存储在Android的首选项数据库中。然后,定义settings类,它继承自PreferenceActivity类:package org.example.wuziqi;import Android.os.B
49、undle;import Android.preference.PreferenceActivity;public class Settings extends PreferenceActivity Overrideprotected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState);addPreferencesFromResource(R.xml.settings); AddPreferencesFromResource()方法从XML文件中读取设置定义,并且将它解压缩到当前活动当的视图当中
50、。所有耗时的解压缩工作都在PreferenceActivity类里面处理。然后,在AndroidManifest.xml文件里面注册settings活动现在,重新运行程序,按下菜单按钮,选择“设置.”菜单项。 图 按下菜单键弹出设置菜单项可以发现,五子棋设置界面已经出现了。 图 游戏设置菜单选项同样的为了界面更加的美观,我们在ndroidManifest.xml修改:单选项具有主题特性: 图 应用主题后的菜单选项五、退出游戏接下来,添加一串代码用来终止这个游戏。只需要添加一串代码到onClick()方法的switch语句部分: case R.id.exit_button: finish();
51、break;按下exit按钮时,它就会调用finish()方法,这个方法就会结束游戏了。通常结束后会转到Android应用程序栈中的下一个活动。六、开始游戏首先需要编写使游戏开始的代码。startGame()方法接收参数。从上次定义的难度列表中选择的难度名称索引。/* Start a new game with the given difficulty level */ private void startGame(int i) Log.d(TAG, clicked on + i); Intent intent = new Intent(wuziqi.this, Game.class); in
52、tent.putExtra(Game.KEY_DIFFICULTY, i); startActivity(intent);五子棋程序的游戏部分将使用另一个名为Game的活动,所以可能需要创建一个行的Intent对象来启动游戏。我们将表示难度级别的数字赋给Inteent对象的extraData域,然后调用StartActivety()方法启动这个新的活动。定义Game类,Game活动的主要内容如下:public class Game extends Activity private static final String TAG =wuziqi;public static final Strin
53、g KEY_DIFFICULTY = difficulty;public static final int DIFFICULTY_EASY = 0;public static final int DIFFICULTY_MEDIUM = 1;public static final int DIFFICULTY_HARD = 2;private int puzzle = new int 16*13;private PuzzleView puzzleView;onCreat()方法是先从Intent对象里面提取出表示难度的数字然后选择一局要进行的游戏,然后创建一个PuzzleView类的实例,用PuzzleView类作为新的视图内容。 接下来需要地定义PuzzleView类:public class PuzzleView extends View private static fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论