首页 理论教育 用户界面设计基础优化方案

用户界面设计基础优化方案

时间:2023-06-27 理论教育 版权反馈
【摘要】:图3-1 Android用户界面框架控制器使用对立队列处理外部动作,每个外部动作作为一个对应的事件加入队列中,然后Android用户界面框架按照“先进先出”的规则从队列获取事件,并将这个事件分配给所对应的事件处理函数。Android用户界面框架中的界面元素以一种树型结构组织在一起,称为视图树,Android系统会依据视图树的结构从上至下绘制每一个界面元素。图3-2 视图树视图组件View对象是Android平台上用户界面的基础单元,也可称为控件。

用户界面设计基础优化方案

用户界面(User Interface)是系统和用户之间进行信息交换的媒介,设计用户界面需要解决如下问题。

(1)界面设计与程序逻辑要完全分离,这样不仅有利于软件的并行开发,而且在后期修改界面时,不用修改程序的逻辑代码。

(2)根据不同型号手机的屏幕解析度、尺寸和纵横比,自动调整界面上控件的位置和尺寸,避免因为屏幕信息的变化而出现显示错误

(3)能够合理利用较小的屏幕显示空间,构造出符合人机交互规律的用户界面,避免出现凌乱、拥挤的用户界面。

(4)Android已经解决了前两个问题,使用XML文件描述用户界面;资源文件独立保存在资源文件夹中;对用户界面描述非常灵活,允许不明确定义界面元素的位置和尺寸,仅声明界面元素的相对位置和粗略尺寸。

Android用户界面框架(Android UI Framework)采用MVC(Model-View-Controler)模型。提供了处理用户输入的控制器(Controler)、显示用户界面和图像的视图(View)以及保存数据和代码的模型(Model),如图3-1所示。

978-7-111-58810-8-Chapter03-1.jpg

图3-1 Android用户界面框架

控制器(Controller)使用对立队列处理外部动作,每个外部动作作为一个对应的事件加入队列中,然后Android用户界面框架按照“先进先出”的规则从队列获取事件,并将这个事件分配给所对应的事件处理函数。

Android用户界面框架中的界面元素以一种树型结构组织在一起,称为视图树,Android系统会依据视图树的结构从上至下绘制每一个界面元素。每个元素负责对自身的绘制,如果元素包含子元素,该元素会通知其下所有子元素进行绘制,如图3-2所示。

在一个Android应用程序中,用户界面通过View和ViewGroup对象构建,其中ViewGroup对象可以理解为一种容器,用于容纳其他的控件对象,并使这些控件对象按照特定的规则进行排列,即按照某种布局排列。Android的布局Layout是ViewGroup的子类,能够提供各种不同的布局结构,如线性布局、表格布局和相对布局等。

978-7-111-58810-8-Chapter03-2.jpg

图3-2 视图树(www.xing528.com)

视图组件View对象是Android平台上用户界面的基础单元,也可称为控件。View控件放在ViewGroup容器中,Android系统提供了许多类型的View,例如TextView和Button等类,它们都是View类的子类。

View和ViewGroup之间采用了组合设计模式。ViewGroup作为布局容器类的最上层,负责对添加进ViewGroup的这些View进行布局,布局容器里面又可以有View和ViewGroup。当然,一个ViewGroup也可以加入到另一个ViewGroup里。因为ViewGroup也是继承于View.ViewGroup类,在每个ViewGroup类中都会有一个嵌套类,这个嵌套类的属性中定义了子View的位置和大小。

Android Studio 2.3提供了界面方便操作的布局管理器,如图3-3所示。

978-7-111-58810-8-Chapter03-3.jpg

图3-3 布局管理器

与图3-3中的数字相对应,管理器中的各部分功能如下。

(1)组件列表:提供了常用的UI组件,可以拖拽到布局编辑器中的控件列表。

(2)组件树:显示了布局的层次结构,既可以管理控件,又可以调整控件的位置。

(3)工具栏:提供了很多预览工具,可以查看布局在不同分辨率、不同API和不同主题上的显示效果。

(4)设计编辑器:显示所有组件的布局效果,并提供一个设计模型图。

(5)属性界面:可改变当前所选的控件的属性。

在图3-10的设计编辑器中添加一个按钮。在图3-10的最下方有两个选项卡,左边是Design,右边是Text。Design是当前的可视化布局管理器,在这里不仅可以预览当前的布局,还可以通过拖放的方式编辑布局;而Text则通过XML文件的方式来编辑布局。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈