I found the PNG image of watch_bg and converted it into a C array again. The test color is correct, but the pointer gets messed up when it rotates to a certain angle, I haven’t found the reason yet. I used the code under the latest Master branch.
static void update_time(lv_task_t *t)
{
// char strftime_buf[64];
if(Second++>60)
{
Second=0;
if(Minute++>60)
{
Minute=0;
if(Hour++>12) Hour=0;
}
}
if(lvHour !=NULL)
{
// Hour,Minute,Second;
lv_img_set_angle(lvHour, Hour*300);
lv_img_set_angle(lvMinute, Minute*60);
lv_img_set_angle(t->user_data, Second*60);
}
}
void analog(void)
{
lv_obj_t *central = lv_page_create(lv_scr_act(),NULL);
//lv_obj_set_size(central, vres-2 , hres/2-2);
lv_obj_set_size(central, 340 ,340);
// lv_obj_set_pos(central, 0, 0);
lv_page_set_scrlbar_mode(central, LV_SCRLBAR_MODE_OFF);
lv_obj_align(central, NULL,LV_ALIGN_CENTER, 0, 0);
lv_obj_t * img = lv_img_create(central,NULL);
lv_img_set_src(img, &watch_bg);
lv_obj_set_size(img, 320,320);
lv_obj_align(img, NULL,LV_ALIGN_CENTER, 0, 0);
lvHour = lv_img_create(central,NULL);
lv_img_set_src( lvHour, &hour);
lv_obj_align(lvHour, central,LV_ALIGN_CENTER,0 ,0);
lv_img_set_angle(lvHour, 750);
lv_img_set_pivot(lvHour, 15, 77);
lvMinute = lv_img_create(central,NULL);
lv_img_set_src( lvMinute, &minute);
lv_obj_align( lvMinute, central,LV_ALIGN_CENTER, 0, 0);
lv_img_set_angle(lvMinute, 1950);
lv_img_set_pivot(lvMinute, 11, 106);
lvSecond = lv_img_create(central,NULL);
lv_img_set_src( lvSecond, &second);
lv_obj_align( lvSecond, central,LV_ALIGN_CENTER, 0, 0);
lv_img_set_angle(lvSecond, 600);
lv_img_set_pivot(lvSecond, 10, 118);
lv_task_create(update_time, 1000, LV_TASK_PRIO_LOW, lvSecond);
}
webwxgetvideo.zip (132 Bytes)