80 static const char *week_day[7] = {
"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"};
81 static time_t unix_time;
82 static struct tm *time_info;
84 unix_time = time(NULL);
85 time_info = localtime(&unix_time);
87 int year = time_info->tm_year + 1900;
88 int month = time_info->tm_mon + 1;
89 int day = time_info->tm_mday;
90 int weekday = time_info->tm_wday;
91 int hour = time_info->tm_hour;
92 int minutes = time_info->tm_min;
93 int second = time_info->tm_sec;
95 if (timer != NULL && timer->user_data != NULL)
100 lv_label_set_text_fmt(clock->
time_label,
"%02d:%02d:%02d", hour, minutes, second);
101 lv_obj_align(clock->
time_label, LV_ALIGN_BOTTOM_LEFT, 230, -15);
105 lv_label_set_text_fmt(clock->
date_label,
"%d-%02d-%02d", year, month, day);
106 lv_obj_align(clock->
date_label, LV_ALIGN_BOTTOM_MID, 50, -60);
111 lv_label_set_text_fmt(clock->
weekday_label,
"%s", week_day[weekday]);
113 lv_obj_align(clock->
weekday_label, LV_ALIGN_BOTTOM_MID, -110, -20);
209 lv_obj_align(img, LV_ALIGN_TOP_LEFT, 0, 0);
213 static lv_color_t canvasBuf[(32 * 480) / 8 * 480];
214 lv_canvas_set_buffer(canvas, canvasBuf, 480, 480, LV_IMG_CF_TRUE_COLOR_ALPHA);
215 const lv_point_t polygonPoint[4] = {
221 lv_draw_rect_dsc_t rect_dsc;
222 lv_draw_rect_dsc_init(&rect_dsc);
223 rect_dsc.bg_color = lv_color_hex(0x567c8c);
224 lv_canvas_draw_polygon(canvas, polygonPoint, 4, &rect_dsc);
228 static lv_color_t canvasBuf1[(32 * 480) / 8 * 480];
229 lv_canvas_set_buffer(canvas1, canvasBuf1, 480, 480, LV_IMG_CF_TRUE_COLOR_ALPHA);
230 const lv_point_t polygonPoint1[4] = {
236 lv_draw_rect_dsc_t rect_dsc1;
237 lv_draw_rect_dsc_init(&rect_dsc1);
238 rect_dsc1.bg_color = lv_color_hex(0x000000);
239 rect_dsc1.bg_opa = LV_OPA_80;
240 lv_canvas_draw_polygon(canvas1, polygonPoint1, 4, &rect_dsc1);
249 static lv_style_t style_rect;
251 lv_color_t c = lv_color_hex(0xadc0c8);
252 lv_style_init(&style_rect);
253 lv_style_set_bg_color(&style_rect, c);
255 lv_style_set_height(&style_rect,
ver_res);
256 lv_style_set_radius(&style_rect, 0);
257 lv_style_set_shadow_width(&style_rect, 25);
258 lv_style_set_shadow_ofs_x(&style_rect, -3);
259 lv_style_set_border_width(&style_rect, 0);
261 lv_obj_align(rect, LV_ALIGN_TOP_RIGHT, 0, 0);
262 lv_obj_add_style(rect, &style_rect, 0);
266 lv_img_set_src(shezhi_img, &
shezhi);
267 lv_obj_align(shezhi_img, LV_ALIGN_TOP_RIGHT, -1 *
rect_width / 2.0 + 64 / 2, 1 *
ver_res / 5.0 - 64 / 2);
270 lv_obj_t *calendar_img_btn = lv_imgbtn_create(
HomePage_OBJ);
271 lv_imgbtn_set_src(calendar_img_btn, LV_IMGBTN_STATE_RELEASED, &
calendar1, NULL, NULL);
272 lv_obj_align(calendar_img_btn, LV_ALIGN_TOP_RIGHT, -1 *
rect_width / 2.0 + 64 / 2, 2 *
ver_res / 5.0 - 64 / 2);
273 lv_obj_set_size(calendar_img_btn, 64, 64);
277 lv_obj_t *message_img_btn = lv_imgbtn_create(
HomePage_OBJ);
278 lv_imgbtn_set_src(message_img_btn, LV_IMGBTN_STATE_RELEASED, &
comment, NULL, NULL);
279 lv_obj_set_size(message_img_btn, 64, 64);
280 lv_obj_align(message_img_btn, LV_ALIGN_TOP_RIGHT, -1 *
rect_width / 2.0 + 64 / 2, 3 *
ver_res / 5.0 - 64 / 2);
285 lv_img_set_src(loading_img, &
loading);
286 lv_obj_align(loading_img, LV_ALIGN_TOP_RIGHT, -1 *
rect_width / 2.0 + 64 / 2, 4 *
ver_res / 5.0 - 64 / 2);
289 static lv_style_t time_label_style;
290 lv_style_init(&time_label_style);
291 lv_style_set_text_color(&time_label_style, lv_color_white());
292 lv_style_set_text_font(&time_label_style, &lv_font_montserrat_32);
293 lv_style_set_text_opa(&time_label_style, LV_OPA_COVER);
294 lv_style_set_bg_opa(&time_label_style, LV_OPA_0);
295 lv_style_set_text_color(&time_label_style, lv_color_hex(0xdba7af));
298 static lv_style_t date_label_style;
299 lv_style_init(&date_label_style);
300 lv_style_set_text_opa(&date_label_style, LV_OPA_COVER);
301 lv_style_set_bg_opa(&date_label_style, LV_OPA_0);
302 lv_style_set_text_color(&date_label_style, lv_color_white());
303 lv_style_set_text_font(&date_label_style, &lv_font_montserrat_20);
306 static lv_style_t week_lable_style;
307 lv_style_init(&week_lable_style);
308 lv_style_set_text_opa(&week_lable_style, LV_OPA_COVER);
309 lv_style_set_bg_opa(&week_lable_style, LV_OPA_0);
310 lv_style_set_text_color(&week_lable_style, lv_color_white());
311 lv_style_set_text_font(&week_lable_style, &lv_font_montserrat_26);
316 lv_obj_add_style(lv_clock.
time_label, &time_label_style, LV_STATE_DEFAULT);
319 lv_obj_add_style(lv_clock.
date_label, &date_label_style, LV_STATE_DEFAULT);
322 lv_obj_add_style(lv_clock.
weekday_label, &week_lable_style, LV_STATE_DEFAULT);
struct _lv_status_lable lv_status_lable_t
结构体用于存储状态相关的标签对象
struct _lv_clock lv_clock_t
结构体用于存储时间相关的标签对象