鸿蒙开源组件——图形UI组件
Tiechui.Wang 2021-07-05 11:00:00 发布3841 浏览 25 点赞 21 收藏
图形UI组件
简介
图形UI组件实现了一套系统级的图形引擎。
该组件为应用开发提供UIKit接口,包括了动画、布局、图形转换、事件处理,以及丰富的UI组件。
组件内部直接调用HAL接口,或者使用WMS(Window Manager Service)提供的客户端与硬件交互,以完成事件响应、图像绘制等操作。
图 1 图形子系统架构图

目录
/foundation/graphic/ui
├── frameworks # 框架代码
│ ├── animator # 动画模块
│ ├── common # 公共模块
│ ├── components # 组件
│ ├── core # ui主流程(渲染、任务管理等)
│ ├── default_resource
│ ├── dfx # 维测功能
│ ├── dock # 驱动适配层
│ │ └── ohos # ohos平台适配
│ ├── draw # 绘制逻辑
│ ├── engines # 绘制引擎
│ │ ├── dfb
│ │ ├── general
│ │ ├── gpu_vglite
│ │ └── software_zlite
│ ├── events # 事件
│ ├── font # 字体
│ ├── imgdecode # 图片管理
│ ├── layout # 页面布局
│ ├── themes # 主题管理
│ ├── window # 窗口管理适配层
│ └── window_manager
│ └── dfb
├── interfaces # 接口
│ ├── innerkits # 模块间接口
│ │ └── xxx # 子模块的接口
│ └── kits # 对外接口
│ └── xxx # 子模块的接口
├── test # 测试代码
│ ├── framework
│ │ ├── include # 测试框架头文件
│ │ └── src # 测试框架源码
│ ├── uitest # 显示效果测试(可执行程序在foundation/graphic/wms/test:sample_ui)
│ │ └── test_xxx # 具体UI组件效果测试
│ └── unittest # 单元测试
│ └── xxx # 具体UI组件单元测试
└── tools # 测试和模拟器工具(模拟器工程、资源文件)
└── qt # QT工程约束
平台约束
- Windows平台仅支持QT和OHOS IDE。
- 其他平台支持情况参考vendor/hisilicon/[product_name]/config.json中的graphic标签(不存在graphic标签即该产品不存在图形子系统)。
编译构建
# 通过gn编译,在out目录下对应产品的文件夹中生成libui.so
hb build lite_ui
# 编译qt库可直接参考qt模拟器工程:graphic/ui/tools/qt/simulator/simulator.pro说明
组件说明
组件分为基础组件和容器组件
- 基础组件:仅实现组件自身单一功能,比如按钮、文字、图片等;
- 容器组件:可将其他组件作为自己的子组件,通过组合实现复杂功能。
图 2 图形组件一览

使用说明
foundation/graphic/ui/test/uitest中提供了图形所有组件和功能接口的使用范例。
- Windows环境可运行QT工程调试 工程文件路径: graphic/ui/tools/qt/simulator/simulator.pro
- 其他调试环境可以编译运行foundation/graphic/wms/test:sample_ui hb build lite_wms -b debug 编译成功后得到可执行程序out/[product_name]/dev_tools/bin/sample_ui,在实际环境上运行即可观察对应组件显示效果。
相关仓
图形子系统
graphic_wms
graphic_surface
graphic_ui
graphic_utils
©本站发布的所有内容,包括但不限于文字、图片、音频、视频、图表、标志、标识、广告、商标、商号、域名、软件、程序等,除特别标明外,均来源于网络或用户投稿,版权归原作者或原出处所有。我们致力于保护原作者版权,若涉及版权问题,请及时联系我们进行处理。
分类
其它
标签
鸿蒙
操作系统
HarmonyOS
相关推荐
深圳启用全国首个鸿蒙智慧地铁站
7912
0鸿蒙版千问重磅更新,开启瓜分30亿春节活动
三元桥的水冰兔
7289
0子组件的点击事件,如何正确让父组件进行响应?
鸿蒙小助手
3504
0页面中有一个横向滚动的Scroll组件,用户不知道可以滑动,怎么达成Scroll组件可滑动的暗示呢?
鸿蒙小助手
7695
0同样使用@State装饰器,有时第三层数据可以更新UI,有时不可以,是什么原因?
鸿蒙小助手
5331
0
Tiechui.Wang
我还没有写个人简介......
1091
帖子
0
提问
893
粉丝
最新发布
华为应用市场增长优化师火热认证中
2025-03-10 10:16:02 发布华为应用市场斩获Pocket Gamer2023年移动游戏奖,全球第三大移动应用生态获行业认可
2024-04-27 11:06:07 发布热门推荐