《Android应用程序开发》课件-第2章_第1页
《Android应用程序开发》课件-第2章_第2页
《Android应用程序开发》课件-第2章_第3页
《Android应用程序开发》课件-第2章_第4页
《Android应用程序开发》课件-第2章_第5页
已阅读5页,还剩81页未读 继续免费阅读

下载本文档

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

文档简介

第2章界面与资源2.1基本控件2.2基本布局2.3对话框与事件2.4菜单2.5综合案例2.6实训本章小结

2.1基本控件

2.1.1视图控件与容器任务目标在屏幕中间显示欢迎文字,运行效果图如图2-1-1所示。图2-1-1运行效果图

实施步骤

点击菜单【File】,选择【new】|【newmodule】新建一个Module,命名为Ex2_1_1,其它为默认设置。

在项目文件结构窗口进入res|layout目录,修改activity_main.xml布局文件,清单如下:

案例分析

1. UI控件的关系

1) View子类结构

View部分子类结构如图2-1-2所示。图2-1-2View子类结构图

2) ViewGroup子类结构

ViewGroup部分子类结构如图2-1-3所示。图2-1-3ViewGroup子类结构图

3) TextView子类结构

TextView部分子类结构如图2-1-4所示。图2-1-4TextView部分子类结构

4) FrameLayout子类结构关系

FrameLayout部分子类结构如图2-1-5所示。图2-1-5FrameLayout部分子类结构图

从图2-1-2到图2-1-5可知,View包含的XML属性和方法是所有组件都可以使用的。表2-1-1所示是View类部分常用的XML属性、相关方法以及简要说明。

2. AndroidUI单位

Android尺寸的常用单位有:

(1) px:像素。

(2) in:英寸。

(3) mm:毫米。

(4) pt:磅,1/72英寸。

(5) dpi:每英寸多少像素,通常来评价屏幕的显示效果。

(6) dp:抽象单位,在每英寸160点的屏幕,1dp = 1px,在240dpi的屏幕上该控件的长度为1 × 240/160=1.5个像素点。

(7) dip:等同于dp。

(8) sp:和dp类似,通常用于字体大小单位。

2.1.2TextView、EditText、Button与RadioButton

设计一个简单的注册表单,包含用户名、密码、性别以及提交按钮,点击按钮时显示输入结果。任务完成后的运行效果如图2-1-6和图2-1-7所示。图2-1-6注册表单运行效果图图2-1-7运行后效果图

实施步骤

步骤1:点击菜单【File】,选择【new】|【newmodule】,新建一个Module,命名为Ex2_1_2,其它设置默认。

步骤2:在项目文件结构窗口进入res|layout目录,修改activity_main.xml布局文件。

步骤3:修改MainActivity.java文件。

相关知识

TextView、Button、EditText、RadioButton、RadioGroup部分常用的XML属性、方法及说明如表2-1-2至表2-1-6所示。

2.1.3ImageView与ImageButton

任务目标

编写一个简单的石头剪刀布游戏。任务完成后的效果如图2-1-8所示。图2-1-8运行效果图

实施步骤

步骤1:新建一个Module,命名为Ex2_1_3,其它设置默认。

步骤2:在项目文件结构窗口中进入Ex2_1_3/res/drawable目录,将cloth.png,play.png,scissors.png,stone.png等图片资源拷贝到这里,如图2-1-9所示。图2-1-9图片资源位置

相关知识

表2-1-7所示为ImageView部分常用的XML属性、方法及说明。

2.1.4活动的生命周期

任务目标

在Logcat中观察Activity的生命周期。效果如图2-1-10所示。图2-1-10Activity生命周期

步骤2:在图2-1-11中,选择【EditFilterConfiguration】,打开【CreateNewLogcatFilter】窗体,如图2-1-12所示,在FilterName中填写Ex2_1_4,LogTag中输入之前Log.i方法中的第一个参数值——“test”。图2-1-11Logcat视图图2-1-12创建LogcatFilter

相关知识

Activity生命周期是研究Android开发最基础的知识点之一,熟练掌握生命周期的特性可以在实际开发中避免一些失误。

Activity的生命周期共七个指示器,即onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart,如图2-1-13所示。图2-1-13Activity生命周期

2.2基本布局

任务目标设计一个注册页面,要求有用户名、密码、性别、兴趣以及提交与重置按钮。任务完成后效果如图2-2-1所示。图2-2-1注册页面运行效果图

案例分析

从布局来说,如果读者有网页设计经验,那么布局就不是一件很麻烦的事情,线性布局基本上能够满足一半的需求。本例中,将页面从上至下分成6个部分,如图2-2-2所示。图2-2-2布局分析

相关知识

1. RelativeLayout相对布局

相对布局可以设置子控件相对于兄弟控件或父控件进行布局,如上下左右对齐。

RelativeLayout能替换一些嵌套视图,当程序开发员用LinearLayout来实现一个简单的布局但又使用了过多的嵌套时,就可以考虑使用RelativeLayout重新布局。相对布局一定要加Id才能管理。

RelativeLayout中子控件常用属性如下:

(1)相对于父控件,如android:layout_alignParentTop=“true”。

android:layout_alignParentTop:控件的顶部与父控件的顶部对齐。

android:layout_alignParentBottom:控件的底部与父控件的底部对齐。

android:layout_alignParentLeft:控件的左部与父控件的左部对齐。

android:layout_alignParentRight:控件的右部与父控件的右部对齐。

(2)相对给定Id控件,如android:layout_above=“@id/**”。

(3)居中,如android:layout_centerInParent=“true”。

效果如图2-2-3所示。图2-2-3相对布局

2. TableLayout表格布局

表格布局适用于多行多列的布局格式,每个TableLayout是由多个TableRow组成的,一个TableRow就表示TableLayout中的一行,这一行可以由多个子元素组成。实际上TableLayout和TableRow都是LineLayout线性布局的子类。但是TableRow的参数android:orientation属性值固定为horizontal,且android:layout_width=MATCH_PARENT,android:layout_height=WRAP_CONTENT。所以TableRow实际是一个横向的线性布局,所以子元素宽度和高度一致。

效果如图2-2-4所示。图2-2-4表格布局

3. ConstraintLayout约束布局

约束布局可用灵活的方式定位和调整小部件,相对于RelativeLayout来说,约束布局可以按照比例约束控件位置和尺寸,能够更好地适配屏幕大小不同的机型,而且性能更出色。

使用ConstraintLayout布局时需要在app/build.gradle文件中添加ConstraintLayout的依赖。

约束布局功能强大,内容较多,这里仅介绍相对定位和角度定位知识。

效果如图2-2-5所示。图2-2-5相对定位

2)角度定位

角度定位能够以一定角度和距离约束两个窗口小部件中心的相对位置。使用角度定位可以实现将一个控件放置在一个圆内。

效果如图2-2-6所示。图2-2-6角度定位

2.3对话框与事件

任务目标创建一个项目,展示多种对话框,具体如图2-3-1至图2-3-7所示。图2-3-1对话框图2-3-2普通对话框图2-3-3列表对话框图2-3-4单选对话框图2-3-5多选对话框图2-3-6输入对话框图2-3-7视图自定义对话框

相关知识

1.对话框

创建AlertDialog的步骤如下:

2.事件

Android中的事件处理通常用于响应用户UI动作,提高应用程序交互性。例如单击按钮,触摸某个对象等。

1)监听事件处理模型

生活中发生的事件处理实例很多,如小朋友摔倒,家长看到立即将他抱起来。在Android中,将完整的事件分成3个主要参与对象:事件源、事件和事件监听者。

2)监听事件响应处理方法

(1)通过UI布局文件,设定UI的android:onClick的属性(事件处理方法)。

注意:代码里面有个跟android:onClick设置的同名方法,且该方法必须是publicvoid的,同时有一个View类型的参数,该参数表示事件源对象。

(2)通过匿名类响应事件。

(3)通过内部类响应事件。

(4)通过外部类相应事件。

(5)通过Activity自身类响应事件。

2.4菜单

任务目标编写一个App,要求带有“开始游戏”和“结束游戏”的菜单项。效果如图2-4-1所示。图2-4-1有选项的Activity

实施步骤

步骤1:创建一个Module,命名为Ex2_4_1。

步骤2:在res目录上单击右键,新建一个资源文件夹,如图2-4-2所示。在添加资源文件夹窗口,将Resourcetype设置为menu,如图2-4-3所示。

步骤3:在menu文件夹上单击右键,新建一个菜单资源文件main.xml,如图2-4-4所示。图2-4-2添加menu目录图2-4-3添加menu目录

图2-4-4添加菜单资源文件

相关知识

1. ActionBar

如图2-4-5所示,1是ActionBar的图标;2是两个action按钮,这里放重要的按钮功能,为用户进行某项操作提供直接访问途径;3是overflow按钮,放不下的按钮会被置于“更多...”菜单项中,该项是以下拉形式实现的。图2-4-5ActionBar导航栏

2.选项菜单

Android的菜单可以分为三种:OptionMenu(选项菜单)、ContextMenu(上下文菜单)、PopupMenu(弹出菜单)。

Android提供了标准的XML格式的资源文件来定义菜单项,并且对所有菜单类型都支持,推荐使用XML资源文件来定义菜单,之后再把它Inflater到Activity中,而不是在Activity中使用代码声明。

菜单的XML资源文件,创建在/res/menu/目录下,包含以下几个元素:

创建选项菜单的步骤如下:

参数说明如下:

3.上下文菜单

ContextMenu顾名思义就是与context(上下文环境)相关的菜单。操作时长按某个对象就会弹出。

创建上下文菜单的步骤如下

4.弹出菜单

PopupMenu(弹出菜单)一般出现在被绑定View的下方(如果下方有空间),用于提供快速简捷的操作。

创建弹出菜单的步骤如下:

2.5综合案例

任务目标设计一个班车系统的登录界面,效果如图2-5-1所示。图2-5-1登录界面

案例分析

从效果图2-5-1来看,整体结构比较规范,没有错位布局,所以本例采用Linearlayout来处理。在设计时一定要注意多分辨率自适应问题,宽度以及字体大小不要使用px。

行26:drawableLeft可以为EditText设置一个左侧的图标,该图标在Android5.0上需要预先处理好大小,本例中编者已经使用图像处理软件将图片处理成长和宽都为24px了。源码中提供了一种Android自动改变图片大小的方法,但是需要在API24及以上环境中使用。

2.6实训

编写班车系统注册程序,当程

温馨提示

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

评论

0/150

提交评论