第5章 Android用户界面 界面设计+控件操作 界面如同人的面孔,具有吸引用户的直接优势
第5章 Android用户界面 界面设计+控件操作 界面如同人的面孔,具有吸引用户的直接优势…
本章结构 用户界面基础 界面的控件 界面布局 菜单、子菜单和快捷菜单 按键事件和触摸事件
本章结构 ◼ 用户界面基础 ◼ 界面的控件 ◼ 界面布局 ◼ 菜单、子菜单和快捷菜单 ◼ 按键事件和触摸事件
用户界面基础 用户界面( User Interface,U)是系统和用户之间 进行信息交换的媒介,实现信息的内部形式与人 类可以接受形式之间的转换 口在计算机出现早期,批处理界面(1945-1968)和命 令行界面(1969-1983)得到广泛的使用 口目前,流行图形用户界面( Graphical User Interface, GU),采用图形方式与用户进行交互的界面 口未来的用户界面将更多的运用虚拟现实技术,使用户 能够摆脱键盘与鼠标的交互方式,而通过动作、语言 甚至是脑电波来控制计算机
用户界面基础 ◼ 用户界面(User Interface,UI)是系统和用户之间 进行信息交换的媒介,实现信息的内部形式与人 类可以接受形式之间的转换 ❑ 在计算机出现早期,批处理界面(1945-1968)和命 令行界面(1969-1983)得到广泛的使用 ❑ 目前,流行图形用户界面(Graphical User Interface, GUI),采用图形方式与用户进行交互的界面 ❑ 未来的用户界面将更多的运用虚拟现实技术,使用户 能够摆脱键盘与鼠标的交互方式,而通过动作、语言, 甚至是脑电波来控制计算机
用户界面基础 设计手机用户界面应解决的问题: 口需要界面设计与程序逻辑完全分离,这样不仅有利于他们的并行开 发,而且在后期修改界面时,也不用再次修改程序的逻辑代码 根据不同型号手机的屏幕解析度、尺寸和纵横比各不相同,自动调 整界面上部分控件的位置和尺寸,避免因为屏幕信息的变化而出现 显示错误 ¤能够合理利用较小的屏幕显示空间,构造出符合人机交互规律的用 户界面,避免出现凌乱、拥挤的用户界面 口 Android已经解决了前两个问题: 使用XML文件(布局文件)描述用户界面;资源文件独立保存在资源文件夹中 对界用户面描述非常灵活,允许不明确定义界面元素的位置和尺寸,仅声明界 面元素的相对位置和粗略尺
用户界面基础 ◼ 设计手机用户界面应解决的问题: ❑ 需要界面设计与程序逻辑完全分离,这样不仅有利于他们的并行开 发,而且在后期修改界面时,也不用再次修改程序的逻辑代码 ❑ 根据不同型号手机的屏幕解析度、尺寸和纵横比各不相同,自动调 整界面上部分控件的位置和尺寸,避免因为屏幕信息的变化而出现 显示错误 ❑ 能够合理利用较小的屏幕显示空间,构造出符合人机交互规律的用 户界面,避免出现凌乱、拥挤的用户界面 ❑ Android已经解决了前两个问题: ◼ 使用XML文件(布局文件)描述用户界面;资源文件独立保存在资源文件夹中 ; ◼ 对界用户面描述非常灵活,允许不明确定义界面元素的位置和尺寸,仅声明界 面元素的相对位置和粗略尺寸
用户界面基础 设计手机用户界面应特别注意的问题: ¤手机的显示区域小,不能有太丰富的展示效果,因此要求设计精简 而不失表达能力。 ¤手机的操作主要依赖拇指,所以交互过程不能设计得太复杂,交互 步骤不能太多,尽量设计多点快捷方式 口不同型号的手机支持的图片格式声音格式、动画格式不一样,需 要选择尽可能通用的格式,或者针对不同的型号进行配置选择 口不同型号的手机屏幕大小不一致,设置形状不一致,因此需要考虑 图片的自适应问题和界面元素的布局问题
用户界面基础 ◼ 设计手机用户界面应特别注意的问题: ❑ 手机的显示区域小,不能有太丰富的展示效果,因此要求设计精简 而不失表达能力。 ❑ 手机的操作主要依赖拇指,所以交互过程不能设计得太复杂,交互 步骤不能太多,尽量设计多点快捷方式。 ❑ 不同型号的手机支持的图片格式、声音格式、动画格式不一样,需 要选择尽可能通用的格式,或者针对不同的型号进行配置选择。 ❑ 不同型号的手机屏幕大小不一致,设置形状不一致,因此需要考虑 图片的自适应问题和界面元素的布局问题
用户界面基础 Android用户界面框架 口 Android用户界面框架( Android UI Framework 采用MVC( Model-view 键盘等输入 Controller)模型 提供了处理用户输入的控制 器( Contro|er) 视图 控制器 显示用户界面和图像的视图 (Mew),以及保存数据 和代码的模型(Moel)给制界面 更新 模型
用户界面基础 ◼ Android用户界面框架 ❑ Android用户界面框架( Android UI Framework) 采用MVC(Model-ViewController)模型 ◼ 提供了处理用户输入的控制 器(Controller) ◼ 显示用户界面和图像的视图 (View),以及保存数据 和代码的模型(Model) 模型 视图 控制器 键盘等输入 绘制界面 更新
用户界面基础 Android用户界面框架 口MVC模型 MNC模型中的控制器能够接受并响应程序的外部动作,如按键 动作或触摸屏动作等 控制器使用队列处理外部动作,每个外部动作作为一个独立的 事件被加入队列中,然后 Android用户界面框架按照“先进先出 的规则从队列中获取事件,并将这个事件分配给所对应的事 件处理函数 消息队列 View 事件N 事件3 Model 事件2 Controller 事件1
用户界面基础 ◼ Android用户界面框架 ❑ MVC模型 ◼ MVC模型中的控制器能够接受并响应程序的外部动作,如按键 动作或触摸屏动作等 ◼ 控制器使用队列处理外部动作,每个外部动作作为一个独立的 事件被加入队列中,然后Android用户界面框架按照“先进先出 ”的规则从队列中获取事件,并将这个事件分配给所对应的事 件处理函数 事件1 事件2 事件3 … 事件N 消息队列 View Controller Model
用户界面基础 Android用户界面框架 o Android用户界面框架采用 视图树(vⅥ ew tree)模型 Android用户界面框架中的界面 元素以一种树型结构组织在一 ViewGroup 起,称为视图树 Android系统会依据视图树的结 构从上至下绘制每一个界面元vew ViewGroup 素。每个元素负责对自身的绘 制,如果元素包含子元素,该 元素会通知其下所有子元素进 View View View 行绘制
用户界面基础 ◼ Android用户界面框架 ❑ Android用户界面框架采用 视图树(View Tree)模型 ◼ Android用户界面框架中的界面 元素以一种树型结构组织在一 起,称为视图树 ◼ Android系统会依据视图树的结 构从上至下绘制每一个界面元 素。每个元素负责对自身的绘 制,如果元素包含子元素,该 元素会通知其下所有子元素进 行绘制 ViewGroup View ViewGroup View View View View
用户界面基础 Android用户界面框架 口视图树 视图树由ⅥeW和 View Group构成 ■ew是界面的最基本的可视单元,存储了屏幕上特定矩形区域 内所显示内容的数据结构,并能够实现所占据区域的界面绘制 、焦点变化、用户输入和界面事件处理等功能 Vew也是一个重要的基类,所有在界面上的可见元素都是VeW 的子类 View Group是一种能够承载含多个Ⅵew的显示单元 View Group功能: 口一个是承载界面布局 口另一个是承载具有原子特性的重构模块
用户界面基础 ◼ Android用户界面框架 ❑ 视图树 ◼ 视图树由View和ViewGroup构成 ◼ View是界面的最基本的可视单元,存储了屏幕上特定矩形区域 内所显示内容的数据结构,并能够实现所占据区域的界面绘制 、焦点变化、用户输入和界面事件处理等功能 ◼ View也是一个重要的基类,所有在界面上的可见元素都是View 的子类 ◼ ViewGroup是一种能够承载含多个View的显示单元 ◼ ViewGroup功能: ❑ 一个是承载界面布局 ❑ 另一个是承载具有原子特性的重构模块
用户界面基础 Android用户界面框架 a单线程用户界面 在单线程用户界面中,控制器从队列中获取事件和视图在 屏幕上绘制用户界面,使用的都是同一个线程 ■优点:处理函数具有顺序性,能够降低应用程序的复杂程 度,同时也能减低开发的难度 ■缺点:如果事件处理函数过于复杂,可能会导致用户界面 失去响应
用户界面基础 ◼ Android用户界面框架 ❑ 单线程用户界面 ◼ 在单线程用户界面中,控制器从队列中获取事件和视图在 屏幕上绘制用户界面,使用的都是同一个线程 ◼ 优点:处理函数具有顺序性,能够降低应用程序的复杂程 度,同时也能减低开发的难度 ◼ 缺点:如果事件处理函数过于复杂,可能会导致用户界面 失去响应