프로그램 사용/lvgl2026. 2. 20. 23:23

누르면 살며시 화면이 바귀는데 fade on으로 되어있고

어쩌면 의외로 간단하게(?) lv_screen_load_anim 이라는 애니메이션 관련 lvgl 함수로 처리한다.

///////////////////
ui_Home.c

void ui_event_BTN_Settings(lv_event_t * e)
{
    lv_event_code_t event_code = lv_event_get_code(e);

    if(event_code == LV_EVENT_CLICKED) {
        _ui_screen_change(&ui_Settings, LV_SCR_LOAD_ANIM_FADE_ON, 100, 0, &ui_Settings_screen_init);
    }
}

void ui_Home_screen_init(void)
{
    ui_Home = lv_obj_create(NULL);
    lv_obj_remove_flag(ui_Home, LV_OBJ_FLAG_SCROLLABLE);      /// Flags
    lv_obj_set_style_bg_color(ui_Home, lv_color_hex(0xFFFFFF), LV_PART_MAIN | LV_STATE_DEFAULT);
    lv_obj_set_style_bg_opa(ui_Home, 0, LV_PART_MAIN | LV_STATE_DEFAULT);

    /// 많이 생략 ///
    lv_obj_add_event_cb(ui_BTN_Settings, ui_event_BTN_Settings, LV_EVENT_ALL, NULL);

}


///////////////////
ui_helpers.c

void _ui_screen_change(lv_obj_t ** target, lv_screen_load_anim_t fademode, int spd, int delay,
                       void (*target_init)(void))
{
    if(*target == NULL)
        target_init();
    lv_screen_load_anim(*target, fademode, spd, delay, false);
}

 

[링크 : https://docs.lvgl.io/master/API/display/lv_display_h.html#_CPPv419lv_screen_load_animP8lv_obj_t21lv_screen_load_anim_t8uint32_t8uint32_tb]

'프로그램 사용 > lvgl' 카테고리의 다른 글

lvgl 속도 제한(?) 해제  (0) 2026.02.18
esp32 lvgl from scratch 는 실패중 ㅠㅠ  (0) 2026.02.18
esp32 lvgl 관련 링크들  (0) 2026.02.18
lvgl 기본 폰트 크기 바꾸기  (0) 2026.02.13
lvgl textarea  (0) 2026.02.11
Posted by 구차니