local root = lvgl.Object() root:set { w = lvgl.HOR_RES(), h = lvgl.VER_RES() } -- create image on root and set position/img src/etc. properties. root:Object():Image { src = SCRIPT_PATH .. "/assets/lvgl-logo.png", x = 0, y = 0, bg_color = 0x004400, pad_all = 0, align = lvgl.ALIGN.CENTER, }:Anim { run = true, start_value = 0, end_value = 3600, duration = 2000, repeat_count = 2, path = "bounce", exec_cb = function(obj, value) obj:set { angle = value } end, done_cb = function (anim, obj) print("anim done.: ", anim, "obj:", obj) anim:delete() end } -- second anim example with playback local obj = root:Object { bg_color = "#F00000", radius = lvgl.RADIUS_CIRCLE, align = lvgl.ALIGN.LEFT_MID, } obj:clear_flag(lvgl.FLAG.SCROLLABLE) --- @type AnimPara local animPara = { run = true, start_value = 10, end_value = 50, duration = 1000, playback_delay = 100, playback_time = 500, repeat_count = lvgl.ANIM_REPEAT_INFINITE, path = "ease_in_out", } animPara.exec_cb = function(obj, value) obj:set { size = value } end obj:Anim(animPara) animPara.end_value = 240 animPara.exec_cb = function(obj, value) obj:set { x = value } end obj:Anim(animPara)