acid-drop- Hacking the planet from a LilyGo T-Deck using custom firmware |
git clone git://git.acid.vegas/acid-drop.git |
Log | Files | Refs | Archive | README | LICENSE |
lv_example_snapshot_1.c (2080B)
1 #include "../../lv_examples.h" 2 #if LV_USE_SNAPSHOT && LV_BUILD_EXAMPLES 3 4 static void event_cb(lv_event_t * e) 5 { 6 lv_obj_t * snapshot_obj = lv_event_get_user_data(e); 7 lv_obj_t * img = lv_event_get_target(e); 8 9 if(snapshot_obj) { 10 lv_img_dsc_t * snapshot = (void *)lv_img_get_src(snapshot_obj); 11 if(snapshot) { 12 lv_snapshot_free(snapshot); 13 } 14 15 /*Update the snapshot, we know parent of object is the container.*/ 16 snapshot = lv_snapshot_take(img->parent, LV_IMG_CF_TRUE_COLOR_ALPHA); 17 if(snapshot == NULL) 18 return; 19 lv_img_set_src(snapshot_obj, snapshot); 20 } 21 } 22 23 void lv_example_snapshot_1(void) 24 { 25 LV_IMG_DECLARE(img_star); 26 lv_obj_t * root = lv_scr_act(); 27 lv_obj_set_style_bg_color(root, lv_palette_main(LV_PALETTE_LIGHT_BLUE), 0); 28 29 /*Create an image object to show snapshot*/ 30 lv_obj_t * snapshot_obj = lv_img_create(root); 31 lv_obj_set_style_bg_color(snapshot_obj, lv_palette_main(LV_PALETTE_PURPLE), 0); 32 lv_obj_set_style_bg_opa(snapshot_obj, LV_OPA_100, 0); 33 lv_img_set_zoom(snapshot_obj, 128); 34 lv_img_set_angle(snapshot_obj, 300); 35 36 /*Create the container and its children*/ 37 lv_obj_t * container = lv_obj_create(root); 38 39 lv_obj_center(container); 40 lv_obj_set_size(container, 180, 180); 41 lv_obj_set_flex_flow(container, LV_FLEX_FLOW_ROW_WRAP); 42 lv_obj_set_flex_align(container, LV_FLEX_ALIGN_SPACE_EVENLY, LV_FLEX_ALIGN_CENTER, LV_FLEX_ALIGN_CENTER); 43 lv_obj_set_style_radius(container, 50, 0); 44 lv_obj_t * img; 45 int i; 46 for(i = 0; i < 4; i++) { 47 img = lv_img_create(container); 48 lv_img_set_src(img, &img_star); 49 lv_obj_set_style_bg_color(img, lv_color_black(), 0); 50 lv_obj_set_style_bg_opa(img, LV_OPA_COVER, 0); 51 lv_obj_set_style_transform_zoom(img, 400, LV_STATE_PRESSED); 52 lv_obj_add_flag(img, LV_OBJ_FLAG_CLICKABLE); 53 lv_obj_add_event_cb(img, event_cb, LV_EVENT_PRESSED, snapshot_obj); 54 lv_obj_add_event_cb(img, event_cb, LV_EVENT_RELEASED, snapshot_obj); 55 } 56 } 57 58 #endif