图形子系统

    各模块介绍:

    • Components: 应用组件,包括UIView、UIViewGoup、UIButton、UILabel、UILabelButton、UIList、UISlider等。
    • Layout:布局控件,包括Flexlayout、GridLayout、ListLayout等。
    • Animator:动画模块,开发者可以自定义动画。
    • Event:事件模块,包括click、press、drag、long press等基础事件。
    • Task:任务管理模块。
    • Input:输入事件处理模块。
    • Display:显示处理模块。
    • Render:渲染绘制模块。
    • Draw2d:2d绘制模块,包括直线、矩形、圆、弧、图片、文字等绘制。包括软件绘制和硬件加速能力对接。
    • Surface:共享内存。
    • Window:窗口管理模块,包括窗口创建、显示隐藏、合成等处理。

    表 1 图形子系统源代码目录结构

    • 语言版本

      • C++11版本或以上
    • 框架针对不同的芯片平台和底层OS能力,规格有所区别

      • Cortex-M RAM/ROM:

        • RAM:建议大于100K
        • ROM: > 300K
      • Cortex-A RAM/ROM:

        • RAM:建议大于1M

    所有的控件都继承UIView,有通用的属性和样式。UI控件分为两大类:普通控件和容器控件。普通控件不能添加子节点,容器控件作为父容器可以添加子节点。

    新增控件头文件放到interfaces/ui/components,cpp文件放到frameworks/ui/src/components目录。组件Override OnDraw绘制接口,在这个接口里实现本控件的绘制流程。在frameworks/ui/BUILD.gn添加对应的新增文件,构建时会编译到libui.so。