feat(label): added animation style property to apply it to circular scrolling animation of label widget (#3128)
* feat(label): added animation style property to apply it to circular scrolling animation of label widget Added an animation style property to be used as animation template for different use cases in different widgets. This commit implements using this property to set the start and repeat delay of the circular scrolling animation of the label widget. Closes #3097 * fix(label): changed animation style property's var_type to `const lv_anim_t *` * example(label): added example showing how to customize circular scrolling animation * chore(label): ran code-format.py and added missing function prototype to lv_example_widgets.h
This commit is contained in:
@@ -23,3 +23,9 @@ Draw label with gradient color
|
||||
.. lv_example:: widgets/label/lv_example_label_4
|
||||
:language: c
|
||||
|
||||
Customize circular scrolling animation
|
||||
""""""""""""""""""""""""""""""""""""
|
||||
|
||||
.. lv_example:: widgets/label/lv_example_label_5
|
||||
:language: c
|
||||
|
||||
|
||||
30
examples/widgets/label/lv_example_label_5.c
Normal file
30
examples/widgets/label/lv_example_label_5.c
Normal file
@@ -0,0 +1,30 @@
|
||||
#include "../../lv_examples.h"
|
||||
#if LV_USE_LABEL && LV_BUILD_EXAMPLES
|
||||
|
||||
/**
|
||||
* Show customizing the circular scrolling animation of a label with `LV_LABEL_LONG_SCROLL_CIRCULAR`
|
||||
* long mode.
|
||||
*/
|
||||
void lv_example_label_5(void)
|
||||
{
|
||||
static lv_anim_t animation_template;
|
||||
static lv_style_t label_style;
|
||||
|
||||
lv_anim_init(&animation_template);
|
||||
lv_anim_set_delay(&animation_template, 1000); /*Wait 1 second to start the first scroll*/
|
||||
lv_anim_set_repeat_delay(&animation_template,
|
||||
3000); /*Repeat the scroll 3 seconds after the label scrolls back to the initial position*/
|
||||
|
||||
/*Initialize the label style with the animation template*/
|
||||
lv_style_init(&label_style);
|
||||
lv_style_set_anim(&label_style, &animation_template);
|
||||
|
||||
lv_obj_t * label1 = lv_label_create(lv_scr_act());
|
||||
lv_label_set_long_mode(label1, LV_LABEL_LONG_SCROLL_CIRCULAR); /*Circular scroll*/
|
||||
lv_obj_set_width(label1, 150);
|
||||
lv_label_set_text(label1, "It is a circularly scrolling text. ");
|
||||
lv_obj_align(label1, LV_ALIGN_CENTER, 0, 40);
|
||||
lv_obj_add_style(label1, &label_style, LV_STATE_DEFAULT); /*Add the style to the label*/
|
||||
}
|
||||
|
||||
#endif
|
||||
10
examples/widgets/label/lv_example_label_5.py
Normal file
10
examples/widgets/label/lv_example_label_5.py
Normal file
@@ -0,0 +1,10 @@
|
||||
#
|
||||
# Show customizing the circular scrolling animation of a label with `LV_LABEL_LONG_SCROLL_CIRCULAR` long mode.
|
||||
#
|
||||
|
||||
label1 = lv.label(lv.scr_act())
|
||||
label1.set_long_mode(lv.label.LONG.SCROLL_CIRCULAR) # Circular scroll
|
||||
label1.set_width(150)
|
||||
label1.set_text("It is a circularly scrolling text. ")
|
||||
label1.align(lv.ALIGN.CENTER, 0, 40)
|
||||
|
||||
@@ -82,6 +82,7 @@ void lv_example_label_1(void);
|
||||
void lv_example_label_2(void);
|
||||
void lv_example_label_3(void);
|
||||
void lv_example_label_4(void);
|
||||
void lv_example_label_5(void);
|
||||
|
||||
void lv_example_led_1(void);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user