/** * Create object to see how they change from the anti aliasing * Modify LV_ANTIALIAS and LV_FONT_ANTIALIAS to see what is changing */ void lv_tutorial_antialiasing(void) { lv_obj_t *label; static lv_style_t style1; lv_style_copy(&style1, &lv_style_btn_rel); style1.body.radius = 20; style1.body.border.width = 8; lv_obj_t *btn1; btn1 = lv_btn_create(lv_scr_act(), NULL); lv_obj_set_pos(btn1, 10, 10); lv_obj_set_size(btn1, 160, 80); lv_btn_set_style(btn1, LV_BTN_STYLE_REL, &style1); label = lv_label_create(btn1, NULL); lv_label_set_text(label, "Button"); lv_img_create_file("red_flower", img_red_flower); /*Create a file in the RAM FS*/ /*Crate an image which is NOT automatically upscaled to compensate the anti aliasing*/ lv_obj_t *img_normal = lv_img_create(lv_scr_act(), NULL); lv_img_set_file(img_normal, "U:/red_flower"); lv_img_set_upscale(img_normal, false); lv_obj_align(img_normal, btn1, LV_ALIGN_OUT_RIGHT_TOP, 10, 0); /*Crate an image which is automatically upscaled to compensate the anti aliasing*/ lv_obj_t *img_scaled = lv_img_create(lv_scr_act(), img_normal); /*Crate an image object*/ lv_img_set_upscale(img_scaled, true); lv_obj_align(img_scaled, img_normal, LV_ALIGN_OUT_RIGHT_TOP, 10, 0); }
/** * Create images from variable and file */ void lv_tutorial_image(void) { /************************* * IMAGE FROM SOURCE CODE *************************/ lv_obj_t *img_src = lv_img_create(lv_scr_act(), NULL); /*Crate an image object*/ lv_img_set_src(img_src, &red_flower); /*Set the created file as image (a red fl ower)*/ lv_obj_set_pos(img_src, 10, 10); /*Set the positions*/ lv_obj_set_drag(img_src, true); #if PC_FILES && USE_LV_FILESYSTEM /************************** * IMAGE FROM BINARY FILE **************************/ /* Add a simple drive to open images from PC*/ lv_fs_drv_t pcfs_drv; /*A driver descriptor*/ memset(&pcfs_drv, 0, sizeof(lv_fs_drv_t)); /*Initialization*/ pcfs_drv.file_size = sizeof(pc_file_t); /*Set up fields...*/ pcfs_drv.letter = 'P'; pcfs_drv.open = pcfs_open; pcfs_drv.close = pcfs_close; pcfs_drv.read = pcfs_read; pcfs_drv.seek = pcfs_seek; pcfs_drv.tell = pcfs_tell; lv_fs_add_drv(&pcfs_drv); lv_obj_t *img_bin = lv_img_create(lv_scr_act(), NULL); /*Create an image object*/ /* Set the image's file according to the current color depth * a blue flower picture*/ #if LV_COLOR_DEPTH == 8 lv_img_set_src(img_bin, "P:/lv_examples/lv_tutorial/6_images/blue_flower_8.bin"); #elif LV_COLOR_DEPTH == 16 lv_img_set_src(img_bin, "P:/lv_examples/lv_tutorial/6_images/blue_flower_16.bin"); #elif LV_COLOR_DEPTH == 24 lv_img_set_src(img_bin, "P:/lv_examples/lv_tutorial/6_images/blue_flower_24.bin"); #endif lv_obj_align(img_bin, img_src, LV_ALIGN_OUT_RIGHT_TOP, 20, 0); /*Align next to the source image*/ lv_obj_set_drag(img_bin, true); #endif lv_obj_t * img_symbol = lv_img_create(lv_scr_act(), NULL); lv_img_set_src(img_symbol, SYMBOL_OK); lv_obj_set_drag(img_symbol, true); lv_obj_align(img_symbol, img_src, LV_ALIGN_OUT_BOTTOM_LEFT, 0, 20); /*Align next to the source image*/ }
/** * Create a demo application */ void demo_create(void) { #if LV_DEMO_WALLPAPER lv_obj_t *wp = lv_img_create(lv_scr_act(), NULL); lv_img_set_src(wp, &img_bubble_pattern); lv_obj_set_width(wp, LV_HOR_RES * 4); lv_obj_set_protect(wp, LV_PROTECT_POS); #endif static lv_style_t style_tv_btn_bg; lv_style_copy(&style_tv_btn_bg, &lv_style_plain); style_tv_btn_bg.body.main_color = LV_COLOR_HEX(0x487fb7); style_tv_btn_bg.body.grad_color = LV_COLOR_HEX(0x487fb7); style_tv_btn_bg.body.padding.ver = 0; static lv_style_t style_tv_btn_rel; lv_style_copy(&style_tv_btn_rel, &lv_style_btn_rel); style_tv_btn_rel.body.empty = 1; style_tv_btn_rel.body.border.width = 0; static lv_style_t style_tv_btn_pr; lv_style_copy(&style_tv_btn_pr, &lv_style_btn_pr); style_tv_btn_pr.body.radius = 0; style_tv_btn_pr.body.opa = LV_OPA_50; style_tv_btn_pr.body.main_color = LV_COLOR_WHITE; style_tv_btn_pr.body.grad_color = LV_COLOR_WHITE; style_tv_btn_pr.body.border.width = 0; style_tv_btn_pr.text.color = LV_COLOR_GRAY; lv_obj_t *tv = lv_tabview_create(lv_scr_act(), NULL); #if LV_DEMO_WALLPAPER lv_obj_set_parent(wp, ((lv_tabview_ext_t *) tv->ext_attr)->content); lv_obj_set_pos(wp, 0, -5); #endif lv_obj_t *tab1 = lv_tabview_add_tab(tv, "Write"); lv_obj_t *tab2 = lv_tabview_add_tab(tv, "List"); lv_obj_t *tab3 = lv_tabview_add_tab(tv, "Chart"); #if LV_DEMO_WALLPAPER == 0 /*Blue bg instead of wallpaper*/ lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BG, &style_tv_btn_bg); #endif lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_BG, &style_tv_btn_bg); lv_tabview_set_style(tv, LV_TABVIEW_STYLE_INDIC, &lv_style_plain); lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_REL, &style_tv_btn_rel); lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_PR, &style_tv_btn_pr); lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_TGL_REL, &style_tv_btn_rel); lv_tabview_set_style(tv, LV_TABVIEW_STYLE_BTN_TGL_PR, &style_tv_btn_pr); write_create(tab1); list_create(tab2); chart_create(tab3); #if LV_DEMO_SLIDE_SHOW lv_task_create(tab_switcher, 3000, LV_TASK_PRIO_MID, tv); #endif }