创建数独游戏启动界面市公开课一等奖省赛课获奖课件_第1页
创建数独游戏启动界面市公开课一等奖省赛课获奖课件_第2页
创建数独游戏启动界面市公开课一等奖省赛课获奖课件_第3页
创建数独游戏启动界面市公开课一等奖省赛课获奖课件_第4页
创建数独游戏启动界面市公开课一等奖省赛课获奖课件_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第5章Android用户界面3G智能手机开发创建数独游戏启动界面第1页Android用户界面组件菜单、对话框、按钮、下拉列表;包含时间响应机制和布局管理;View和ViewGroup采取组合设计模式View子类:widget;ViewGroup子类:Layout;布局容器类创建数独游戏启动界面第2页内容提要本章将创建一个真实实例程序:数独游戏。经过逐步完善该游戏功效,讲解以下方面内容:使用布局文件组织各个用户界面;使用Android文本、颜色及其它资源;添加控制项、应用主题以更改外观;添加菜单项和首选项;创建数独游戏启动界面第3页1数独游戏介绍数独盘面由81个单元格(9行×9列)组成,玩家在单元格中填入1~9之间数字,使每个数字在每行、每列和每区(3行×3列部分)中都只出现一次。游戏开始时,部分单元格中已经填入了一些数字。玩家只需在剩下单元格中填入数字。一道正确数独谜题只有唯一答案。创建数独游戏启动界面第4页1数独游戏介绍Android数独游戏不再使用纸笔;给出提醒,以降低破解工作量;难度适中,保留挑战性、趣味性;Android数独游戏示例程序创建数独游戏启动界面第5页2申明性设计设计用户界面方法过程性设计:指用代码设计用户界面(Java代码);申明性设计:不包括任何代码(XML描述符);Android同时支持过程性设计和申明性设计,允许开放人员使用任一格调创建用户界面;创建数独游戏启动界面第6页2申明性设计两种方法比较XML代码比Java代码短小易懂;以后可能开发Aandroid工具会更加好与XML协作;尽可能使用申明性XML语言;创建数独游戏启动界面第7页3创建开启界面建立工程Projectname:SudokuPackagename:org.example.sudokuActivityname:SudokuApplicationname:Sudoku实际工程中,能够自定义名称;系统中每个应用程序必须含有唯一软件包名。创建数独游戏启动界面第8页3创建开启界面直接运行上面建立工程,会得到一个空白界面,其中显示“HelloWorld,Sudoku.”修改游戏开启界面开始新游戏;继续游戏;游戏相关信息;退出;创建数独游戏启动界面第9页3创建开启界面Android程序是活动集合,每个活动定义一个用户界面屏幕;创建Sudoku项目时,ADT在Sudoku.java中建立了一个活动;创建数独游戏启动界面第10页3创建开启界面Sudoku继承Activity类,调用活动onCreate()方法初始化该活动,然后调用setContentView()方法展示视图界面;R.layout.main是R.java资源类中一个属性;创建数独游戏启动界面第11页3创建开启界面上面代码中R.layout.main是一个资源标识符,引用了res/layout目录中main.xml文件;main.xml以XML格式申明用户界面,在运行时,Android解析并实例化该文件中定义资源,并将其设置为当前活动视图;sudoku项目中初始资源创建数独游戏启动界面第12页3创建开启界面注意:R类是一个资源类由ADT自动管理;放入res目录中任何位置文件,ADT都会在R.java中添加资源ID;假如删除或修改了某个资源文件,R.java将保持同时;创建数独游戏启动界面第13页3创建开启界面依据不一样资源类型包含了不一样静态内部类attr中申明属性;drawable中申明一些图片资源;layout中申明布局文件;string中申明字符串;R.java文件内容创建数独游戏启动界面第14页3创建开启界面main.xml文件定义用户界面布局编辑器XML编辑器XML文件申明创建数独游戏启动界面第15页3创建开启界面main.xml:布局文件;布局:存放一个或多个子对象及某种行为容器;行为:描述了怎样将这些子对象放置在屏幕上其父对象矩形区域中;创建数独游戏启动界面第16页3创建开启界面惯用布局FrameLayout(框架布局):从屏幕左上角开始显示子对象,主要用于选项卡视图和图像切换器;LinearLayout(线性布局):以单列或单行形式显示子对象,最惯用布局方式;垂直:android:orientation=“vertical”水平:android:orientation=“horizontal”创建数独游戏启动界面第17页3创建开启界面惯用布局RelativeLayout(相对布局):以相对于其它对象或父对象位置显示子对象,惯用于表单中;TabLayout(表格布局):以多行和多列方式显示子对象,类似于HTML表格;创建数独游戏启动界面第18页3创建开启界面各种布局方式惯用参数xmlns:android=/apk/res/android定义AndroidXML命名空间,该参数只能在main.xml文件中第一个XML标识处定义一次;android:layout_width=“fill_parent”,android:layout_height=“fill_parent”申明此布局宽度和高度与父对象宽度和高度相同。创建数独游戏启动界面第19页3创建开启界面main.xml文件:<LinearLayout>标识中有一个以下子对象部件:<TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/hello"/>此处定义了一个文本标签,使得屏幕显示文本信息;创建数独游戏启动界面第20页3创建开启界面文本标签如右图所表示;这是建立工程后,运行应用程序初始界面;创建数独游戏启动界面第21页3创建开启界面HelloWorld,Sudoku!文本信息所在位置创建数独游戏启动界面第22页3创建开启界面经过修改main.xml文件,使用不一样文本和几个按钮来替换应用程序初始界面;替换后游戏开启界面如有图所表示;改动文件:main.xmlstrings.xml创建数独游戏启动界面第23页3创建开启界面Sudoku/res/layout/main.xml<?xmlversion="1.0"encoding="utf-8"?><LinearLayoutxmlns:android="/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:text="@string/main_title"/>创建数独游戏启动界面第24页<Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/continue_label"/><Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/new_game_label"/><Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/about_label"/><Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/exit_label" /></LinearLayout>创建数独游戏启动界面第25页3创建开启界面Sudoku/res/values/strings.xml<?xmlversion="1.0"encoding="utf-8"?><resources><stringname="app_name">Sudoku</string><stringname="main_title">AndroidSudoku</string><stringname="continue_label">Continue</string><stringname="new_game_label">New</string><stringname="about_label">About</string><stringname="exit_label">Exit</string></resources>创建数独游戏启动界面第26页3创建开启界面上述代码实现了创建数独游戏简单开启界面功效;下一步,将实现设置标题文本格式,改变按钮大小并使用不一样背景颜色;颜色定义res/values/colors.xml创建数独游戏启动界面第27页3创建开启界面在Sudoku/res/values/colors.xml创建颜色定义;<?xmlversion="1.0"encoding="utf-8"?><resources><colorname="background">#3500ffff</color></resources>创建数独游戏启动界面第28页3创建开启界面创建颜色定义文件后,重新布局,即重新修改main.xml文件;Android支持界面度量单位:px(像素)、in(英寸)、mm(毫米)、pt(磅);dp(与密度无关像素)、dip(与dp同)、sp(与刻度无关像素);提议用sp为文字大小单位,dip为其它元素单位创建数独游戏启动界面第29页3创建开启界面定义了屏幕背景色;设置了字体大小;设置了按钮大小;创建数独游戏启动界面第30页3创建开启界面main.xml文件<?xmlversion="1.0"encoding="utf-8"?><LinearLayout xmlns:android="/apk/res/android" android:background="@color/background" android:layout_height="fill_parent" android:layout_width="fill_parent"

android:padding="15dip" android:orientation="horizontal">创建数独游戏启动界面第31页<LinearLayout android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content"

android:layout_gravity="center" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/main_title" android:layout_gravity="center"

android:layout_marginBottom="15dip"

android:textSize="20.5sp" />创建数独游戏启动界面第32页 <Button android:id="@+id/continue_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/continue_label"/> <Button android:id="@+id/new_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/new_game_label"/> <Button android:id="@+id/about_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/about_label"/> <Button android:id="@+id/exit_button" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/exit_label"/> </LinearLayout></LinearLayout>创建数独游戏启动界面第33页3创建开启界面上述main.xml中,语法:@+id/resid;创建一个新资源ID供其它对象引用;比如:@+id/about_button定义了About按钮ID,之后用户按该按钮时,将使用这个ID触发某个事件;“@”表示字符“/”之后内容是组件ID字符串,“+”表示该资源必须创建并添加到资源中;在XML中引用形式为:“@id/resid”,没有“+”表示无需创建,仅引用;创建数独游戏启动界面第34页4横向布局Android设备支持模式切换,程序必须支持横向模式下正确运行;将上述开启界面切换到横向模式;创建横向模式布局;创建数独游戏启动界面第35页4横向布局创建res/layout-land/main.xml文件;采取TableLayout(表格布局)布局方式创建两列按钮;layout-land中“-land”为资源后缀,res/layout-land/main.xml用来替换res/layout/main.xml;每个替换资源文件必须定义完全相同ID集合;创建数独游戏启动界面第36页4横向布局仅修改布局,只需创建一个横向布局main.xml文件;Sudoku/res/layout-land/main.xml文件内容见P35。创建数独游戏启动界面第37页5实现About对话框About按钮功效:按下按钮弹出窗口,显示数独游戏信息;阅读完信息后,按Back按钮能够关闭信息窗口;实现方法:定义一个新Activity类并开启;使用AlertDialog类显示;子类化AndroidDialog类显示;为新Activity创建布局文件about.xml;创建数独游戏启动界面第38页5实现About对话框创建About活动步骤:创建About按钮活动布局文件:about.xml;在strings.xml文件中添加About对话框标题及文本内容;创建About.java文件定义About活动;将About活动与Sudoku类中About按钮关联;创建数独游戏启动界面第39页创建数独游戏启动界面第40页创建数独游戏启动界面第41页创建数独游戏启动界面第42页5实现About对话框关联视图ID步骤:调用setOnClickListener()方法通知系统触发对象;在onCreat()方法中调用findViewById()方法依据ID查找视图;将全部按钮视图与按钮ID关联;创建数独游戏启动界面第43页创建数独游戏启动界面第44页5实现About对话框开启About活动:在Sudoku类中实现OnClickListener接口;定义onClick()方法处理单击事件;获取被点击按钮ID;创建Intent类;开启About活动;在AndroidManifest.xml文件中申明About活动;创建数独游戏启动界面第45页创建数独游戏启动界面第46页创建数独游戏启动界面第47页5实现About对话框未申明活动时运行错误提醒点击About按钮运行界面创建数独游戏启动界面第48页6应用主题Android主题一个样式集合可用于重写Android部件外观网页设计-CSSCascadingStyleSheets层叠样式表将屏幕上显示内容与其外观或样式分离创建数独游戏启动界面第49页6应用主题Android系统预设主题,能够经过名称进行引用子类化现有主题并重写其默认值,能够构建自定义主题自定义主题在res/values/styles.xml文件中定义创建数独游戏启动界面第50页6应用主题为About活动使用系统预定义主题打开AndroidManifest.xml文件,修改About活动定义,添加主题创建数独游戏启动界面第51页创建数独游戏启动界面第52页6应用主题主题资源引用方式"@android:style/s_name“"@style/s_name"创建数独游戏启动界面第53页7添加菜单添加主菜单第一步:定义字符串资源\res\values\strings.xml创建数独游戏启动界面第54页7添加菜单第二步:定义菜单资源res\menu\menu.xml创建数独游戏启动界面第55页7添加菜单第三步:在Sudoku类中创建菜单导入以下菜单相关包:importandroid.view.Menu;importandroid.view.MenuInflater;importandroid.view.MenuItem;重写Sudoku类中onCreateOptionsMenu()创建数独游戏启动界面第56页7添加菜单getMenuInflater()方法换回一个MenuInflater类实例,用于从XML文件中读取菜单定义,并将其转换为实际视图。创建数独游戏启动界面第57页7添加菜单第四步:定义菜单点击事件,选择settings菜单,调用onOptionItemSelected()执行Prefs类。创建数独游戏启动界面第58页8添加设置Android提供了程序首选项定义工具在res/xml/settings.xml资源文件中定义创建数独游戏启动界面第59页8添加设置Sudoku程序中定义了两个设置播放背景音乐显示提醒信息两个首选项键值是字符串常量,将被存放在Android首选项数据库中首选项数据库相关内容将在第6章介绍创建数独游戏启动界面第60页8添加设置定义Prefs类,继承自PreferenceActivity类addPreferencesFromResource()方法从XML文件中读取设置定义,并将其解压缩至当前活动视图中创建数独游戏启动界面第61页8添加设置在AndroidManifest.xml文件中注册Prefs活动创建数独游戏启动界面第62页8添加设置运行Sudoku,按下MENU键,选择Settings…菜单项,设置页面如右图所表示设置项能够修改使用设置内容将在第6章介绍创建数独游戏启动界面第63页9开始新游戏实现NewGame按钮弹出对话框,展示难度级别创建难度列表资源数组资源(array)实现难度级别对话框处理NewGame按钮单击事件处理难度列表用户界面创建数独游戏启动界面第64页9开始新游戏第一步:在res/values/stings.xml文件中添加字符串创建数独游戏启动界面第65页9开始新游戏第二步:在res/values/arrays.xml文件中创建难度列表创建数独游戏启动界面第66页9开始新游戏第三步:在Sudoku类中导入相关包创建数独游戏启动界面第67页9开始新游戏第四步:在onClick()方法switch语句中添加处理NewGame按钮单击事件代码openNewGameDialog()方法创建一个处理难度列表界面创建数独游戏启动界面第68页创建数独游戏启动界面第69页难度列表资源ID选择条目监听器创建数独游戏启动界面第70页9开始新游戏运行程序并点击NewGame按钮,执行结果如右图所表示。创建数独游戏启动界面第71页10利用日志消息调试程序Logcat是Android系统提供一个通用日志工具,能够帮助开发者发觉并找出代码中存在错误。在eclipseDebug布局和DDMS布局中都有一个Logcat视图创建数独游戏启动界面第72页10利用日志消息调试程序创建数独游戏启动界面第73页10利用日志消息调试程序P程序运行后,Logcat视图中消息模拟器开启消息Android操作系统开启消息各种应用程序开启消息与P程序开启相关消息消息过滤功效V,D,I,W,E按钮创建数独游戏启动界面第74页10利用日志消息调试程序消息过滤功效V(Verbose)显示所用类型消息D(Debug)显示Debug、Information、Warning、Error消息I(Information)显示Information、Warning、Error消息W(Warning)显示Warning、Error消息E(Error)显示Error消息创建数独游戏启动界面第75页10利用日志消息调试程序Logcat视图中包含列名Time用于显示消息产生时间Priority消息级别(此列并未在标题栏中显示标出,取值D,I,W,E)pid产生消息进程IDtag消息产生起源简短描述Message消息详细内容创建数独

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论