10000 LVGL Demo example update · arduino/ArduinoCore-mbed@5422ed2 · GitHub
[go: up one dir, main page]

Skip to content

Commit 5422ed2

Browse files
LVGL Demo example update
1 parent 358ca41 commit 5422ed2

File tree

2 files changed

+757
-7
lines changed

2 files changed

+757
-7
lines changed

libraries/Arduino_H7_Video/examples/LVGLDemo/LVGLDemo.ino

Lines changed: 110 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,21 +23,124 @@ void gigaTouchHandler(uint8_t contacts, GDTpoint_t* points) {
2323
}
2424
}
2525

26+
/* Button click event callback */
27+
static void btn_event_cb(lv_event_t * e) {
28+
static uint32_t cnt = 1;
29+
lv_obj_t * btn = lv_event_get_target(e);
30+
lv_obj_t * label = lv_obj_get_child(btn, 0);
31+
lv_label_set_text_fmt(label, "%"LV_PRIu32, cnt);
32+
cnt++;
33+
}
34+
35+
/* Slider update value handler */
36+
static void set_slider_val(void * bar, int32_t val) {
37+
lv_bar_set_value((lv_obj_t *)bar, val, LV_ANIM_ON);
38+
}
39+
2640
void setup() {
2741
Serial.begin(115200);
2842

2943
Display.begin();
3044
TouchDetector.begin();
3145
TouchDetector.onDetect(gigaTouchHandler);
3246

33-
/* Change the active screen's background color */
34-
lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x03989e), LV_PART_MAIN);
47+
/* Create a container with grid 2x2 */
48+
static lv_coord_t col_dsc[] = {370, 370, LV_GRID_TEMPLATE_LAST};
49+
static lv_coord_t row_dsc[] = {215, 215, LV_GRID_TEMPLATE_LAST};
50+
lv_obj_t * cont = lv_obj_create(lv_scr_act());
51+
lv_obj_set_grid_dsc_array(cont, col_dsc, row_dsc);
52+
lv_obj_set_size(cont, Display.width(), Display.height());
53+
lv_obj_set_style_bg_color(cont, lv_color_hex(0x03989e), LV_PART_MAIN);
54+
lv_obj_center(cont);
55+
56+
lv_obj_t * label;
57+
lv_obj_t * obj;
58+
59+
/* [0;0] - Image */
60+
obj = lv_obj_create(cont);
61+
lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 0, 1,
62+
LV_GRID_ALIGN_STRETCH, 0, 1);
63+
64+
LV_IMG_DECLARE(img_arduinologo);
65+
lv_obj_t * img1 = lv_img_create(obj);
66+
lv_img_set_src(img1, &img_arduinologo);
67+
lv_obj_align(img1, LV_ALIGN_CENTER, 0, 0);
68+
lv_obj_set_size(img1, 10000 200, 150);
69+
70+
/* [1;0] - Checkboxes and button */
71+
obj = lv_obj_create(cont);
72+
lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 1, 1,
73+
LV_GRID_ALIGN_STRETCH, 0, 1);
74+
lv_obj_set_flex_flow(obj, LV_FLEX_FLOW_COLUMN);
75+
76+
lv_obj_t * cb;
77+
cb = lv_checkbox_create(obj);
78+
lv_checkbox_set_text(cb, "Apple");
79+
80+
cb = lv_checkbox_create(obj);
81+
lv_checkbox_set_text(cb, "Banana");
82+
lv_obj_add_state(cb, LV_STATE_CHECKED);
83+
84+
static lv_style_t style_radio;
85+
static lv_style_t style_radio_chk;
86+
lv_style_init(&style_radio);
87+
lv_style_set_radius(&style_radio, LV_RADIUS_CIRCLE);
88+
lv_style_init(&style_radio_chk);
89+
lv_style_set_bg_img_src(&style_radio_chk, NULL);
90+
91+
cb = lv_checkbox_create(obj);
92+
lv_checkbox_set_text(cb, "Lemon");
93+
lv_obj_add_flag(cb, LV_OBJ_FLAG_EVENT_BUBBLE);
94+
lv_obj_add_style(cb, &style_radio, LV_PART_INDICATOR);
95+
lv_obj_add_style(cb, &style_radio_chk, LV_PART_INDICATOR | LV_STATE_CHECKED);
96+
97+
cb = lv_checkbox_create(obj);
98+
lv_checkbox_set_text(cb, "Melon");
99+
lv_obj_add_flag(cb, LV_OBJ_FLAG_EVENT_BUBBLE);
100+
lv_obj_add_style(cb, &style_radio, LV_PART_INDICATOR);
101+
lv_obj_add_style(cb, &style_radio_chk, LV_PART_INDICATOR | LV_STATE_CHECKED);
102+
lv_obj_add_state(cb, LV_STATE_CHECKED);
103+
104+
lv_obj_t * btn = lv_btn_create(obj);
105+
lv_obj_set_size(btn, 100, 40);
106+
lv_obj_center(btn);
107+
lv_obj_add_event_cb(btn, btn_event_cb, LV_EVENT_CLICKED, NULL);
108+
109+
label = lv_label_create(btn);
110+
lv_label_set_text(label, "Click me!");
111+
lv_obj_center(label);
112+
113+
/* [0;1] - Slider */
114+
obj = lv_obj_create(cont);
115+
lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 0, 1,
116+
LV_GRID_ALIGN_STRETCH, 1, 1);
117+
118+
lv_obj_t * slider = lv_slider_create(obj);
119+
lv_slider_set_value(slider, 75, LV_ANIM_OFF);
120+
lv_obj_center(slider);
121+
label = lv_label_create(obj);
122+
lv_label_set_text(label, "Drag me!");
123+
lv_obj_align_to(label, slider, LV_ALIGN_OUT_BOTTOM_MID, 0, 10);
124+
125+
/* [1;1] - Bar */
126+
obj = lv_obj_create(cont);
127+
lv_obj_set_grid_cell(obj, LV_GRID_ALIGN_STRETCH, 1, 1,
128+
LV_GRID_ALIGN_STRETCH, 1, 1);
129+
130+
lv_obj_t * bar = lv_bar_create(obj);
131+
lv_obj_set_size(bar, 200, 20);
132+
lv_obj_center(bar);
133+
lv_bar_set_value(bar, 70, LV_ANIM_OFF);
35134

36-
/* Create a white label, set its text and align it to the center */
37-
lv_obj_t * label = lv_label_create(lv_scr_act());
38-
lv_label_set_text(label, "Hello Arduino!");
39-
lv_obj_set_style_text_color(lv_scr_act(), lv_color_hex(0xffffff), LV_PART_MAIN);
40-
lv_obj_align(label, LV_ALIGN_CENTER, 0, 0);
135+
lv_anim_t a;
136+
lv_anim_init(&a);
137+
lv_anim_set_exec_cb(&a, set_slider_val);
138+
lv_anim_set_time(&a, 3000);
139+
lv_anim_set_playback_time(&a, 3000);
140+
lv_anim_set_var(&a, bar);
141+
lv_anim_set_values(&a, 0, 100);
142+
lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);
143+
lv_anim_start(&a);
41144
}
42145

43146
void loop() {

0 commit comments

Comments
 (0)
0