• LVGL 8.2图片缩放及旋转


    动画回调函数设置角度

    static void set_angle(void* img, int32_t v)
    {
        lv_img_set_angle(img, v);
    }
    
    • 1
    • 2
    • 3
    • 4

    动画回调函数设置缩放大小

    static void set_zoom(void* img, int32_t v)
    {
        lv_img_set_zoom(img, v);
    }
    
    • 1
    • 2
    • 3
    • 4

    创建Image及缩放,旋转图片

    /**
    * Show transformations (zoom and rotation) using a pivot point.
    */
    static void lv_example_img_3(void)
    {
        LV_IMG_DECLARE(img_cogwheel_argb);   // 图片资源声明
        /*Now create the actual image*/
        lv_obj_t* img = lv_img_create(lv_scr_act()); // 创建Image对象
        lv_img_set_src(img, &img_cogwheel_argb); //设置显示的图片源
        lv_obj_align(img, LV_ALIGN_CENTER, 50, 50); // 居中偏移50,50处对齐
        lv_img_set_pivot(img, 0, 0); // 围绕Image对象左上角旋转
        lv_anim_t a;
        lv_anim_init(&a);  // 初时化动画变量
        lv_anim_set_var(&a, img); //设置动画关联的对象img
        lv_anim_set_exec_cb(&a, set_angle); //设置动画执行的回调函数set_angle
        lv_anim_set_values(&a, 0, 3600); // 设置动画的范围,这里是角度0~360度
        lv_anim_set_time(&a, 5000); //设置动画duration时间5000毫秒
        lv_anim_set_repeat_count(&a, LV_ANIM_REPEAT_INFINITE);//设置动画重复次数,这里是无穷次
        lv_anim_start(&a); //启动动画播放
        lv_anim_set_exec_cb(&a, set_zoom); //设置动画执行回调函数set_zoom
        lv_anim_set_values(&a, 128, 256); // 设置动画的范围,这里是缩放比例128~256
        lv_anim_set_playback_time(&a, 3000); // 设置动画回播时间3000毫秒
        lv_anim_start(&a);  //启动动画播放
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    运行效果

    在这里插入图片描述

  • 相关阅读:
    正则表达式基本语法
    KMP算法(题目)
    空间变形网络——STN
    通过Native Memory Tracking查JVM的线程内存使用(线上JVM排障之九)
    Java 和 JavaScript 有什么区别?
    力扣每日一题55:跳跃游戏
    Tomcat--文件上传--文件包含--(CVE-2017-12615)&&(CVE-2020-1938)
    vue使用pcl.js展示.pcd/.bin文件代码源码
    【无标题】
    NSSCTF-Web题目5
  • 原文地址:https://blog.csdn.net/mygod2008ok/article/details/125477148