anim.lua 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. module(...,package.seeall)
  2. require "sys"
  3. btn = nil
  4. local function set_y(btn, value)
  5. lvgl.obj_set_y(btn, value)
  6. end
  7. anim = nil
  8. local function stop_anim()
  9. lvgl.anim_del(anim, set_y)
  10. lvgl.obj_set_y(btn, 10)
  11. end
  12. function create()
  13. theme = lvgl.theme_material_init(460, nil)
  14. lvgl.theme_set_current(theme)
  15. scr = lvgl.cont_create(nil, nil)
  16. btn = lvgl.btn_create(scr, nil)
  17. lvgl.obj_set_pos(btn, 10, 10)
  18. lvgl.obj_set_size(btn, 80, 50)
  19. label = lvgl.label_create(btn, nil)
  20. lvgl.label_set_text(label, "动画")
  21. anim = lvgl.anim_t()
  22. -- lvgl.ANIM_PATH_LINEAR,
  23. -- lvgl.ANIM_PATH_EASE_IN,
  24. -- lvgl.ANIM_PATH_EASE_OUT,
  25. -- lvgl.ANIM_PATH_EASE_IN_OUT,
  26. -- lvgl.ANIM_PATH_OVERSHOOT,
  27. -- lvgl.ANIM_PATH_BOUNCE,
  28. -- lvgl.ANIM_PATH_STEP,
  29. -- lvgl.ANIM_PATH_NONE,
  30. lvgl.anim_set_values(anim, -lvgl.obj_get_height(btn), lvgl.obj_get_y(btn), lvgl.ANIM_PATH_OVERSHOOT)
  31. lvgl.anim_set_time(anim, 300, -2000)
  32. lvgl.anim_set_repeat(anim, 500)
  33. lvgl.anim_set_playback(anim, 500)
  34. lvgl.anim_set_exec_cb(anim, btn, set_y)
  35. lvgl.anim_create(anim)
  36. btn2 = lvgl.btn_create(scr, nil)
  37. lvgl.obj_set_pos(btn2, 10, 80)
  38. lvgl.obj_set_size(btn2, 100, 50)
  39. btn2_label = lvgl.label_create(btn2, nil)
  40. lvgl.label_set_text(btn2_label, "样式动画")
  41. btn2_style = lvgl.style_t()
  42. lvgl.style_copy(btn2_style, lvgl.btn_get_style(btn, lvgl.BTN_STYLE_REL))
  43. lvgl.btn_set_style(btn2, lvgl.BTN_STYLE_REL, btn2_style)
  44. style_anim = lvgl.anim_t()
  45. lvgl.style_anim_init(style_anim)
  46. lvgl.style_anim_set_styles(style_anim, btn2_style, lvgl.style_btn_rel, lvgl.style_pretty)
  47. lvgl.style_anim_set_time(style_anim, 500, 500)
  48. lvgl.style_anim_set_playback(style_anim, 500)
  49. lvgl.style_anim_set_repeat(style_anim, 500)
  50. lvgl.style_anim_create(style_anim)
  51. -- lvgl.disp_load_scr(scr)
  52. sys.timerStart(stop_anim, 3000)
  53. return scr
  54. end
  55. -- lvgl.init(create, nil)