B--ch3-Android设计用户界面_第1页
B--ch3-Android设计用户界面_第2页
B--ch3-Android设计用户界面_第3页
B--ch3-Android设计用户界面_第4页
B--ch3-Android设计用户界面_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、第3章 设计用户界面署名署名 3.0 中国大陆中国大陆 (CC BY 3.0 CN)陈军亮2022-5-20 第二部分将创建一个更加真实的示倒程序:数独游戏 通过逐步完善该游戏的功能,读者可以掌握Android程序设计的多方面内容 首先介绍用户界面设计3.1数独游戏简介数独盘面由81个单元格(9行9列)组成,玩家要试着在这些单元格中填八19的数字,使每个数字在每一行、每一列和每一区(3行3列的部分)中部只出现一次3.2声明性设计设计用户界面的方法有两种:过程性设计和声明性设计过程性设计是指用代码设计用户界面例如,开发一个Swing应用程序时必须编写Java代码,以创建和操作所有用户界面对象(例

2、如JFrame和JButton)因此,Swing是过程性的 另一方面,声明性设计不涉及任何代码倒如,在设计简单的网页时会使用HTML, HTML是一种类似于XML的标记语言,描述了你期望的网页布局,而不是如何实现该布局因此,HTML是声明性的 Android同时支持过程性设计和声明性设计,允许开发人员使用任一风格创建用户界面:既可以几乎全部使用Java代码,也可以几乎全部使用XML描述符谷歌建议尽可能使用声明性的XML语言3 .3 创建建启动界面 系统中的每个应用程序都必须具有唯一的软件包名因为在很多地方都会用到软件包名,所以一旦设定好软件包后就不要随意修改它,否则将会引起一些小麻烦 如第2章

3、所述,Android程序是一个松散的活动集合,其中的每个活动都定义了一个用户界面屏幕创建Sudoku项目时,Android插件会在Sudoku.java文件中建立一个活动 Android调用活动的onCredre0方法来初始化该活动,onCredre0方法又调用serConrenrView0方法,利用一个Android视图部件填充该活动的屏幕区域内容 上面代码中的R.layout.activity_main是一个资源标识符,引用了res/layout目录中的activity_main.xml文件(参见图3.2)activity_main. xml文件以XML格式声明用户界面,所以这正是我们需要

4、修改的文件 在运行时,Android解析并实例化(解压缩)该文件中已定义的资源,并将其设置为当前活动的视图 注意,R类是由Android Eclipse插件自动管理的,这点非常重要 无论将一个文件放到res目录中的哪个位置,Android Eclipse插件都会注意到这一变化并自动在gen目录中的R.java文件内添加资源ID如果删除或修改了某个资源文件,R .java将保持同步 如果在编辑器中打开该文件,就会看到与下面类似的内容: Android资源管理器使用十六进制整数加载实际数据、字符串,以及被编译到软件包中的其他资源 无需关心这些资源的值,只要记住这些值是引用数据的句柄,而不是引用包含

5、数据的对象的句柄。 在当前的ADT版本中,可视化的布局编辑器用处不大,因此请单击activity_main.xml或底部的Source选项卡,查看XML文件activity_main.xml. 布局是存放一个或多个子对象及某种行为的容器,行为描述了如何将这些子对象放置在屏幕上其父对象的矩形区域中下面列出了Android中最常用的几种布局 FrameLayout(框架布局):从屏幕的左上角开始显示子对象,主要用于选项卡视图和图像切换器 LinearLayout(线性布局):以单列或单行的形式显示子对象,这是最常用的布局方式 RelativeLayout(相对布局):相对于其他子对象或父对象的位置

6、显示子对象,这种布局通常用于表单中 TableLayout(表格布局):以多行和多列的方式显示子对象,类似于HTML表格 标签中有一个如下所示的子对象部件: 此处定义了一个简单的文本标签我们使用不同文本和几个按钮来替换该标签,下面是第一次尝试: 保存strings.xml,Eclipse将会重新构建项目再运行程序会看到如图3.3所示的结果虽然目前的启动界面清晰易读,但还需要进一步美化接下来,让标题文本更大一些并使其居中,让按钮变小并使用不同的背景色下面是颜色定义,这些定义应放在resvaluescolors.xml文件中:3.4使用替代资源 作为一种测试,现在将模拟器切换到横向模式(按CtrI

7、+Fll键或小键盘上的7键或9键)糟了,屏幕底部的Exit按钮消失了(参见图3 5)如何解决这个问题?3.4使用替代资源 创建一个名为res/layout- land/activity_main.xml(注意land后缀)的文件,该文件包含下列布局:3.4使用替代资源 该文件采用TableLayout布局方式创建两列按钮现在再次运行该程序, 结果如图3.6所示)即使在横向模式下,所有按钮也都可以正常显示3.4使用替代资源3.5实现About对话框 用户选择了About按钮时,表明他们触按了屏幕上的该按钮,此时,我们希望弹出一个窗口,并在其中显示一些有关该数独游戏的信息 阅读完该对话框上的这些文

8、字后,用户按下Back按钮可关闭该窗口 可以用多种方法实现这个功能: 定义一个新的Activity类并启动它: 使用AlertDialog类并显示它, 子类化Android的Dialog类并显示它3.5实现About对话框 在这个例子中,我们将定义一个新的活动与主Sudoku活动一样,About活动也需要一个布局文件我们将该布局文件命名为res/layout/about.xml:3.5实现About对话框 下面,将About对话框的标题及对话框中包含的文本内容添加到res/values/strings.xml文件:3.5实现About对话框3.5实现About对话框3.5实现About对话框同

9、时,在此需要对所有按钮进行相同的处理还记得吗,当Eclipse插件在res/layout/activity_main.xml文件中看到+id/dbout_button这样的语法形式时它将自动在R.java文件中创建类似R.id.about_button这样的常量3.5实现About对话框3.6 应用主题 主题是一个样式集合,可用于覆写Android部件的外观 Android中的主题是受网页设计中使用的CSS(Cascading Style Sheet,层叠样式表)的启发 Android附带了多个主题,可以通过名称进行引用 另外,通过于类化现有主题并覆写其默认值,用户也可以构造自己的主题3.6 应用主题可以在res/values/styles xml文件中自定义主题,但是此处我们只需利用一个预定义的主题要使用主题,首先在编辑器中再次打开AndroidManifest.xml文件,然后修改About活动的定义,以使其具有主题特性3.6

温馨提示

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

评论

0/150

提交评论