本教程的简要描述UI结构和演示了如何开发和设计本机UI应用程序的工具。 参考这个文档创建了基于移动概要文件。
在谈到Tizen本机UI应用程序的发展,你不能避免EFL。 Tizen平台使用EFL作为一个UI框架,提供了可视化用户应用前景和明显的性能优势。
EFL代表启蒙的基础库。 Enlightenment是一个项目组成的Enlightenment的窗口管理器,EFL libraries,和各种实用程序和应用程序。 最初,Enlightenment是一个项目,建立一个为X11窗口管理器。 然而,它已经从那时起。 目前,它仍然产生了窗口管理器,但它已经覆盖移动、可穿戴,和电视UI需求(例如,对于Tizen项目)以及传统桌面UI。 尽管Tizen采用EFL作为UI框架,UI框架和EFL是不一样的。 因为EFL是主要项目的窗口管理器,在Tizen UI框架中,它的功能被定义为移动,可穿戴,和电视的特点。 EFL结构EFL提供了简化的图形核心库,您需要创建强大的应用程序。 EFL只要更低的内存,但提供高性能,并支持保留模式图形系统和以用户为中心的特性,如主题,2 d / 3 d效果,和可访问性。 此外,EFL支持各种分辨率相同的布局,快速和小文件系统,各种各样的编程语言绑定,用户界面和逻辑的分离。 尽管EFL UI工具包主要用于2 d - base Tizen本机应用程序,它还支持2.5 d和3 d效果和3 d对象。 EFL的一个重要方面是效率,无论是在速度和大小: - 核心EFL库,即使小学,大约一半大小的“小栈”相当于GTK +(举例来说,使用侏儒),和大约四分之一大小的Qt。当然,这些数字,你可以争论到底什么构成一个等价的测量。
- EFL很低在实际运行时的内存使用情况,与记忆足迹大小的一小部分的GTK +和Qt环境。
- EFL快,考虑它。 一些图书馆声称自己是非常快,但是,它容易迅速当你只处理简单和直接的任务。 英语快,同时也应对更复杂的渲染问题涉及,例如,α混合插值缩放和转换犹豫不决。
EFL的主要特征EFL的关键特点解释了为什么Tizen采用了EFL作为UI框架: - 快速的性能
- 小内存占用
- 各种后端引擎支持
- UI和业务逻辑分离
- Themeable和可伸缩的
- 动画
- 语言绑定和硬件加速
- 灵活性
以下部分描述最重要的特性(快速性能,用户界面和逻辑分离)。 保留模式呈现快速的性能Tizen使用EFL的主要原因是它的速度。 EFL是高度优化的使用场景图和保留模式呈现,导致EFL快速甚至在软件渲染。 图形系统采用保留模式基本上是负责应对所有重画呈现应用程序对象的请求。 客户不会直接导致实际呈现,但对象是重绘时部分更新。 换句话说,因为EFL(eva)作品保留模式,不需要任何绘图命令。 图:保留模式呈现 与Edje UI和业务逻辑分离EFL支持UI布局和主题EDC文件: - EDC文件分离UI布局和逻辑(EDC)通过布局描述在一个纯文本文件和逻辑代码的C或c++源文件。
- EDC文件支持主题,可以在运行时改变而不需要重新启动应用程序。
- UI组件是可定制的,因此每个应用程序可以创建自己的自定义主题上面覆盖默认主题,添加定制版本的UI组件实现一个特定的外观和感觉。
下图描述了EDC文件的行为。 图:EDC文件的行为 EFL结构EFL库的集合覆盖范围的功能从应用程序生命周期管理呈现图形对象。 EFL libraries建立最重要的一层,稳步变得更高级,但允许访问到较低的水平。 层次越高,越少。 Elementary是在顶部,但你仍然访问下面的层常见的任务,作为基本没有必要包装东西按原样很好工作。 去了解更多关于每个库 UI实践。 本节仅简要介绍Tizen应用程序的层次结构。 图:英语结构 当您创建一个基本的英语应用程序中,您使用以下主要库为基础: - 基本是最顶层的库创建你的 EFL应用程序。 它提供了所有你需要的功能来创建一个窗口,创建简单的和复杂的布局,管理生命周期的一个视图,并添加UI组件(一个完整的集合,例如,按钮,盒子,照片卷轴,和滑块)。
- EFL核心库包括几个库建立最重要的一层,逐步成为高级,但允许访问到较低的水平。
EFL核心库提供了以下主要库:
- Edje库提供了一个强大的主题。 您可以使用它来创建自己的UI组件和应用程序中使用它们。 你也可以扩展默认主题。
- Ecore library管理应用程序的主循环。 主循环是最重要的概念之一,您需要知道开发一个应用程序。 主循环是事件的处理,以及与用户交互通过回调机制。
- eva library负责管理内容的画。 您创建的所有图形对象是eva对象。 eva处理窗口状态通过填充画布对象和操纵他们所在的州。 相比其他帆布库,如开罗,OpenGL,XRender,eva不是图纸库而是一个场景图库,保留所有对象的状态。 eva对象创建和操纵,直到他们不再需要,此时他们删除。 这允许您在同一项工作的设计师认为:这是一个直接映射,而不是将概念转化为以正确的顺序绘制命令,并计算最小绘制调用需要完成工作。
- Eina library是所有EFL的基础库。 Eina工具箱,实现一个API数据类型的一种有效的方式。 它包含所需的所有功能创建列表和散列,管理共享字符串和开放共享库和处理错误和内存池。
UI层次结构要开发一个用户界面应用程序,您必须了解EFL中使用的层次结构。 管理多个视图与EFL Tizen应用程序,创建一个naviframe对象。 naviframe可以包含多个视图,是一个顶层对象可以帮助您的应用程序来管理和切换视图。 如果您的应用程序只有一个视图中,您不需要naviframe。 下图演示了最受欢迎的视图层次来管理多个视图。 图:视图层次结构的多个视图 如果你想让每一个结构情况(单个和多个视图),下图展示了一个可能的结构。 图:UI层次结构 基本的UI组件库EFL基本是一套快速、效果、可伸缩、themeable UI组件库。 支持UI组件的数量大约是80,包括容器和非容器。 最初,最基本的是发达的窗口管理器开发桌面设备上。 为移动概要,Tizen重用适当的UI组件和创建新的,然后增强和调整所有Tizen本机应用程序。 UI组件移动:例如,naviframe组件支持多个视图,视图管理入口组件支持多模式(如密码、单/多行,编辑/ no-edit),索引组件支持快速访问另一组UI项目,和工具栏组件显示一个菜单项被选中。 移动UI组件的设计允许用户与触摸screen-equipped移动设备。 因此,在开发移动应用程序时,您可以轻松地通过使用它们居然在公司与视图管理和基础设施对触摸事件,用户手指大小。 UI组件- 胜利:赢得组件是根窗口组件,通常是在应用程序中使用。 它允许你创建一些内容,这是由窗口管理器处理。
- 一致:符合性是一个容器组件,占空间指标,采取的虚拟键盘,功能键区域。
- Naviframe:Naviframe组件由一堆的观点。 新观点是把之前的,只有最顶层视图显示。
- 弹出:弹出组件显示了一个弹出区域可以包含一个小区域,内容,和一个行动区。
- Ctxpopup:Ctxpopup组件是一个上下文弹出,它可以显示条目的列表。
- 照片卷轴:照片卷轴(片段)一个对象,它允许您滚动字幕。
- 电网:网格中,对象被放置在特定的位置在一个固定的网格。
- 表:表就像一盒,但二维。
- 盒子:一盒是最简单的英语容器组件之一,它允许您安排UI组件在一个特定的水平或垂直。
- 面板:面板组件添加一个可拖动的酒吧2部分的内容。 部分是调整大小酒吧拖时。
- 面板:面板组件是一个动画对象可以包含子对象。 它可以通过点击按钮进行扩张或者收缩的边缘。
- 列表:列表组件是一个非常简单的列表来管理一个小条目的数量。 如果您需要管理很多物品,使用genlist组件。
- Genlist:Genlist组件显示一个可滚动的项目列表。 它可以容纳很多的物品,同时仍然快速、节约内存分配的内存(只有可见的物品)。
- 工具栏:工具栏组件是一个可滚动的项目列表。 时它还可以显示一个菜单项被选中。 一次只能选择一项。
- Multibuttonentry:一个多按钮入口是一个让用户输入UI组件,每个块的文本管理作为一组按钮。
- Gengrid:Gengrid组件显示对象在一个网格布局和显示只有可见的对象。
- 指数:指数是一个UI组件,给你一个索引用于快速访问一组其他UI项目。
- Flipselector:Fileselector UI组件,有一组文本条目和翻转向上或向下选择器来修改文本。
- 背景:背景组件可用于设置一个坚实的背景装饰一个窗口或一个容器对象。 它的工作原理就像一个形象,但有一些background-specific属性,如设置瓷砖,为中心,扩展或延伸模式。
- Datetimeatetime组件可以显示和输入日期和时间值。
- 图片:图片组件可以加载和显示一个图像从一个文件或内存。
- 标签:标签组件显示文本的简单类html标记。
- Progressbarrogressbar组件可以用来显示给定任务的进展状况。
- 布局:一个布局是一个容器组件,需要一个标准Edje设计文件和包裹很薄的UI组件。
- 地图:地图是一个专门从事UI组件显示地图。 它使用 开放地图提供者。
- 日历:日历是一个UI组件显示月视图。
- Colorselector:Colorselector组件提供一个颜色选择器。 它有不同的模式,每个人都显示不同的颜色选择配置。
- 输入:输入组件是一个文本框,用户可以输入。
- Spinner:Spinner组件使用户增加或通过使用箭头按钮减少一个数值。
- 滑块:滑块组件是用来选择从一个值范围的值可拖动条。
- 按钮:按钮组件是一个简单的按钮。它是由一个标签图标,图标的对象,并且具有自动重复功能。
- 检查:该检查组件切换真假布尔值。
- 电台:无线组件可以显示1以上的选择,但用户可以只选择其中之一。 UI组件是由一个指标(选择/未选择),一个可选的图标,以及一个可选的标签。尽管它通常与2或更多个其它无线电元件分组,也可以单独使用。
|