Edit online

屏幕旋转

30 Oct 2024
本节展示了基于 LVGL 的 UI 框架,实现横屏竖用、竖屏横用的方式。以下方式任选一种,详细流程如下:
  • 静态旋转
    1. packages/artinchip/lvgl-ui/lv_driver/lv_fbdev.h 文件中,使能 USE_DRAW_BUF 宏定义,开启转屏缓存:
      ...
      #define USE_DRAW_BUF
      ...
    2. packages/artinchip/lvgl-ui/lv_driver/lv_port_disp.c 文件中,设置旋转角度。

      如下所示,旋转角度设置为 90 度:
      /* when define USE_DRAW_BUF, disp_drv.rotated can be
        LV_DISP_ROT_90/LV_DISP_ROT_180/LV_DISP_ROT_270
      */
      disp_drv.rotated = LV_DISP_ROT_90;      // 设置旋转 90 度,共有三种角度可选:90、180、270
  • 动态旋转

    在程序运行到需要进行旋转屏幕时,调用 lv_disp_set_rotation

    API 定义在 packages/artinchip/lvgl-ui/lvgl/src/hal/lv_hal_disp.c