图形子系统
简介
图形子系统主要包括UI组件、布局、动画、字体、输入事件、窗口管理、渲染绘制等模块,构建基于轻量OS的应用框架,满足硬件资源较小的物联网设备的OpenHarmony系统应用开发。
各模块介绍:
- Components: 应用组件,包括UIView、UIViewGoup、UIButton、UILabel、UILabelButton、UIList、UISlider等。
- Layout:布局控件,包括Flexlayout、GridLayout、ListLayout等。
- Animator:动画模块,开发者可以自定义动画。
- Font:字体处理模块。
- Event:事件模块,包括click、press、drag、long press等基础事件。
- Task:任务管理模块。
- Input:输入事件处理模块。
- Display:显示处理模块。
- Render:渲染绘制模块。
- Draw2d:2d绘制模块,包括直线、矩形、圆、弧、图片、文字等绘制。包括软件绘制和硬件加速能力对接。
- Surface:共享内存。
- Window:窗口管理模块,包括窗口创建、显示隐藏、合成等处理。
- Adapter:适配层,对接底层适配层接口。
目录
表 1 图形子系统源代码目录结构
约束
语言版本
- C++11版本或以上
框架针对不同的芯片平台和底层OS能力,规格有所区别
Cortex-M RAM/ROM:
- RAM:建议大于100K
- ROM: > 300K
Cortex-A RAM/ROM:
- RAM:建议大于1M
- ROM:> 1M
新增一个UI控件
所有的控件都继承UIView,有通用的属性和样式。UI控件分为两大类:普通控件和容器控件。普通控件不能添加子节点,容器控件作为父容器可以添加子节点。
新增控件头文件放到interfaces/ui/components,cpp文件放到frameworks/ui/src/components目录。组件Override OnDraw绘制接口,在这个接口里实现本控件的绘制流程。在frameworks/ui/BUILD.gn添加对应的新增文件,构建时会编译到libui.so。
涉及仓
graphic_lite