ArkUI 是两套构筑洛佐韦领域的新闻稿式 UI 合作开发架构。它具有简约自然的 UI 信息句法、丰富的 UI 组件、布季夫的状态管理,和动态介面自动预览等相关潜能,帮助您提升应用领域合作开发工作效率,并能在多种相同电子设备上同时实现生动活泼而简洁的使用者新体验。随着 HarmonyOS 3.1 版的发布,ArkUI 也追加许多潜能,助推应用领域合作开发更超薄。
ArkUI 潜能一直在不断构筑中,如下表所示图右图,红色组件是本次新版 ArkUI 架构的追加 / 进一步增强潜能。
ArkUI 架构潜能集接下去,小贴士将从新闻稿式绘出潜能、混和合作开发潜能、多元化产业布局潜能、Noc组件潜能、UI 梅利尼潜能四大潜能,详尽表明 ArkUI 如何让应用领域合作开发更加快捷。
新闻稿式 Canvas 绘出潜能:为了方便合作开发人员透过绘出方式同时实现自订 UI 效果,提供更多 Canvas 组件。
高效能混和合作开发潜能:为满足使用者协力图形发动机网络连接,比如格斗游戏、世界地图等,提供更多了 XComponent 组件,支持 C++/ArkTS 混和合作开发。
多元化产业布局潜能:为满足使用者多种相同多样的产业布局政治理念,提供更多了相对产业布局罐子、灵巧模版潜能、自订产业布局潜能。
Noc组件潜能:特别针对相同电子设备、相同解析度的多平台情景,进一步增强了Noc情景的列举如下表所示组件潜能;为满足使用者条目项的滑翔政治理念,进一步增强了条目的Sibas / 吸底潜能。
UI 梅利尼潜能:为满足使用者大型应用领域的局部性预览需求,提供更多梅利尼模版潜能。
下面特别针对这些追加潜能,结合实例逐个详尽介绍:
表明:什么是Noc?
Noc是一场合作开发,格朗普雷县布署的简称。具体指两套标识符工程,一场合作开发,应用领域发行版一场开卖,多种相同电子设备形态按需递送布署。
新闻稿式 Canvas 绘出潜能
ArkUI 透过 Canvas 组件对外提供更多高效能 2D 绘出潜能,满足使用者多种相同情景自订绘出政治理念,Canvas 组件具有前述优点。
(1)Canvas 提供更多绘出方向、正方形、方形、字符串和影像等多种相同方法;
(2)利用现有 Web Canvas 生态,参考 W3C 的 Canvas 接口,而无需引入 Web 发动机,给合作开发人员提供更多了一个轻量化的 2D 绘出潜能;
W3C Canvas 绘出接口(3)结合新闻稿式句法,兼顾合作开发人员绘出习惯;
(4)基于 GPU 图形加速。
下面的实例,是通过 Canvas 自绘出同时实现的,它绘出了一个图片背景,并在上层填充 “HarmonyOS” 的文本,标识符实例如下表所示:
vate ctx: RenderingContext = new RenderingContext ( ) ;// 列出所要用到的图片 private img: ImageBitmap = new ImageBitmap ( “common/bg.jpg” ) ; build ( ) { Column ( ) { // 创建 canvas Canvas ( this.ctx ) .width ( 1500 ) .height ( 900 ) .backgroundColor ( #ffff00 ) // 开始绘出 .onReady ( ( ) => { this.ctx.drawImage ( this.img, 0, 0, 400, 200 ) this.ctx.fillStyle = “#FFF” this.ctx.font = 100px sans-serif bold this.ctx.fillText ( “HarmonyOS”, 100, 80 ) this.ctx.fillStyle = “rgb ( 38,79,247 ) ” this.ctx.fillRect ( 250, 85, 26, 4 ) } ) } }
同时实现效果如下表所示图右图:
Canvas 绘出潜能效果Canvas 组件:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-canvasrenderingcontext2d.md#drawimage
高效能混和合作开发潜能,满足使用者自图形引擎网络连接政治理念
在应用领域合作开发过程中,很多情景是无法直接采用 UI 组合同时实现的,例如格斗游戏、世界地图是 OS 上经常使用的一类高频应用领域,但由于格斗游戏和世界地图对 OS 底层绘出潜能要求较高,这类应用领域基本上都是直接使用 EGL/OpenGLES 的 Native 潜能同时实现,而 XComponent 就是 ArkTS 与 C++ 混和合作开发的粘合剂。
如下表所示面架构图右图,XComponent 作为一个 ArkTS 组件,具有通用新闻稿式组件的属性,可进行产业布局、事件等的新闻稿式业务合作开发。同时合作开发人员可以使用 OS 对外提供更多的 Native API 同时实现 Native 的业务合作开发,XComponent 负责将 Native 合作开发的逻辑和 ArkTS 的合作开发逻辑结合,完成统一图形送显。
XComponent 关系图如下表所示标识符片段,标识符片断 1 是新闻稿式的 ArkTS 同时实现,标识符片断 2 是 Native 的同时实现。XComponent 通过加载 .so 并执行相关业务逻辑,完成新闻稿式与 C++ 的混和合作开发。
// ArkTS 入口 XComponent ( { id: xcomponentId , type: surface, libraryname: nativerender} )
标识符片断 1
// C++ 图形组件 #include <ace/xcomponent/native_interface_xcomponent.h>#include <EGL/egl.h>#include <GLES/gl.h>#include <stdio.h>
void NativeRender ( OH_NativeXComponent* component, void* nativewindow ) { // 可调用 NDK 提供更多的 C/C++ 接口(如:EGL/GLES 潜能)}
标识符片断 2
Xcomponent 组件:https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/arkui-ts/ts-basic-components-xcomponent.md
多元化产业布局潜能
另外,ArkUI 提供更多了多种相同多样的产业布局潜能,包括相对产业布局罐子、灵巧模版潜能、和自订产业布局潜能。
1、相对产业布局罐子,让复杂产业布局扁平化
下面结合实例,具体介绍相对产业布局是如何使复杂的产业布局扁平化,更易于合作开发人员合作开发的。
如下表所示图中 ” 产业布局效果 ” 右图,如果要同时实现图中的效果,一段 Text 文本位于左上角,另一段 Text 文本放置在右下角,使用线性产业布局需要这么同时实现:在外层套一个 Column 罐子,里面嵌套 2 个 Row 罐子,第一段 Text 文本放置在第一个 Row 的左侧,第二段 Text 文本放置在第二个 Row 的右侧,需要使用 3 个产业布局罐子,2 层嵌套。
如果使用相对产业布局,只需要外层套一个 RelativeContianer 罐子,设置第一行文本在相对罐子的左上角,设置第二行文本在相对罐子的右下角,只需要 1 个产业布局罐子,1 层嵌套,标识符同时实现上也较简约。
线性产业布局和相对产业布局同时实现对比2、灵巧模版,让绝对定位潜能更强大
除了以上介绍的产业布局潜能外,ArkUI 还提供更多了绝对定位和相对定位潜能,让合作开发人员同时实现更灵巧的定位,现已提供更多了 2 个方法,position 和 markAnchor。
透过 position 和 markAnchor 配合使用可以同时实现丰富的绝对定位潜能,透过灵巧模版可以同时实现如下表所示的定位效果。灵巧模版定位效果3、自订产业布局,尺寸、位置任意掌控
ArkUI 架构除提供更多的特定产业布局潜能外,还提供更多了允许合作开发人员自订的产业布局潜能。如图中右图的方形产业布局,透过现有的线性产业布局是很难同时实现的,像这类产业布局就可以透过自订产业布局潜能同时实现。其原理呢,就是透过对合作开发人员暴露测量和产业布局的接口,允许合作开发人员自己测量子组件和设置子组件位置。
方形产业布局效果流程如下表所示图右图,合作开发人员透过 onMeasure/onLayout 拿到子组件数据后,透过 measure 测量每个组件大小,并根据开发者意图透过 layout 设置每个组件的位置,最终同时实现合作开发人员想要的产业布局。
自订产业布局同时实现流程除图中的方形产业布局外,瀑布流产业布局也可以透过自订产业布局同时实现。
Noc组件潜能
为帮助合作开发人员更高效合作开发应用领域,我们还提供更多了列举如下表所示架构组件及条目组件等Noc组件潜能。
1、简单快速的列举如下表所示架构组件
列举如下表所示架构组件可以在相同电子设备或相同解析度平台下显示相同效果,列举如下表所示组件能自动根据断点调整为二列举如下表所示或三列举如下表所示。
列举如下表所示控件的侧边栏也有 2 种显示方式,可以是嵌入式的,内容区显示在侧边栏右侧,也可以是悬浮在内容区之上,满足使用者合作开发人员相同政治理念。
2、条目组件潜能进一步增强,内置横滑动效、Sibas效果
(1)横滑动效
我们平时使用比较多的聊天软件,它的聊天记录或通信录一般都是使用条目组件同时实现的,当需要对消息或通信录进行删除时,就是对条目的条目项删除。ArkUI 追加了条目的手势删除条目项功能,使用者可以透过左滑或右滑删除某一条目项,并内置动画效果。
(2)Sibas效果除此之外,条目组件还提供更多了Sibas效果,在滑动条目时,条目组件的 title 可以悬浮在顶端,便于使用者快速识别所属类别。
UI 梅利尼潜能UI 梅利尼原理图结语
未来 ArkUI 架构会持续围绕竞争力和生态演进,多维度细粒度并发,进一步提升能效比,推出统一的新闻稿式 2D&3D 范式,不断丰富跨 OS 平台架构潜能,各位合作开发人员敬请期待!