DSP2 - LittleVGL学习笔记-(2)-Label控件

Label控件

以下是自己对着正点原子出的教程敲的代码
所有的细节都在代码中注释了,可能还有没有注意到的

/*
    当前文件所完成的功能

    1)  创建label标签对象
    2)  设置Label对象坐标
    3)  使能并绘制Label对象背景
    4)  设置Label的样式
    5)  设置Label的动态文本
    6)  设置Label的静态文本
    7)  使能并设置长文本模式(6种模式)
    8)  设置文本对齐方式
    9)  设置文本的重绘色功能
    10) 在已有文本中插入文本(任意位置 对于文本末尾有宏直接获取)
    */
#include "DSP2_2.h"

lv_obj_t * Screen2;
lv_obj_t * Label1;

char name[] = {"I am Lesterbor"};

void test2_start(void){
    //创建一个屏幕对象
    Screen2 = lv_scr_act();

    //创建一个label控件对象背景色为透明
    Label1 = lv_label_create(Screen2,NULL);

    //设置Label1的坐标
    lv_obj_set_pos(Label1,50,50);

    //使能Label1绘制背景
    lv_label_set_body_draw(Label1,true);

    //设置Label1的样式(背景选择默认样式)
    lv_label_set_style(Label1,LV_LABEL_STYLE_MAIN,&lv_style_plain_color);

    //设置Label的动态文本
    lv_label_set_text(Label1,"Hello I am \n Lesterbor ");
    /*设置Label1的数组文本(数组是前面的全局变量name)*/
    //lv_label_set_array_text(Label1,name,sizeof(name));
    /*设置静态文本*/
    //lv_label_set_static_text(Label1,"I am Lesterbor");
    /*使能并设置长文本模式(无法使用lv_obj_set_size设置大小)*/
    /*
        LV_LABEL_LONG_EXPAND模式
        字符宽自适应
        不具有自动换行功能
        */
    //lv_label_set_long_mode(Label1,LV_LABEL_LONG_EXPAND);
    //lv_label_set_static_text(Label1,"I am Lesterbor\nMSZ");
    /*
        LV_LABEL_LONG_BREAK模式
        以自动换行(lv_obj_set_size设置大小只能设置横向宽度超过宽度自动换行)
        自己使用强制换行也是可以的
        */
    //lv_label_set_long_mode(Label1,LV_LABEL_LONG_BREAK);
    //大小设置必须在设置LV_LABEL_LONG_BREAK模式的后面
    //lv_obj_set_width(Label1,100);
    //lv_label_set_static_text(Label1,"I am Lesterbor MSZ");
    /*
        LV_LABEL_LONG_DOT模式
        当使用此模式时lv_obj_set_size设置的宽和高都是有效的
        当超过设置的宽和高时会显示...
        同时具有自动换行功能
        注意在此模式下不能使用设置静态文本这个接口
        末尾的三个...的数量是可以通过修改宏定义而生效的
            LV_LABEL_DOT_NUM = 3

        */
    //lv_label_set_long_mode(Label1,LV_LABEL_LONG_DOT);
    //lv_obj_set_size(Label1,100,50);
    //lv_label_set_text(Label1,"I am Lesterbor,he is handsome");
    /*
        LV_LABEL_LONG_SROLL模式(前后滚动)
        当使用此模式时会触发文本前后滚动(先向前滚动到文本末端之后向后滚动)
        lv_obj_set_size设置的宽和高都是有效的
        不具有自动换行功能
        可以设置移动速度
            在lv_conf.h文件中的385行也可以通过API接口来设置lv_label_set_anim_speed
            对于下面的环形滚动也适用
        */
    //lv_label_set_long_mode(Label1,LV_LABEL_LONG_SROLL);
    //lv_obj_set_width(Label1,100);
    lv_obj_set_size(Label1,50,16);
    //lv_label_set_anim_speed(Label1,LV_LABEL_DEF_SCROLL_SPEED*3);
    //lv_label_set_text(Label1,"I am Lesterbor,he is handsome");
    /*
        LV_LABEL_LONG_SROLL_CIRC模式(环形滚动)
        一直向前滚动到文本末端之后重新开始显示文本首端
        lv_obj_set_size设置的宽和高都是有效的
        不具有自动换行功能
        */
    //lv_label_set_long_mode(Label1,LV_LABEL_LONG_SROLL_CIRC);
    //lv_obj_set_width(Label1,100);
    lv_obj_set_size(Label1,50,16);
    //lv_label_set_text(Label1,"I am Lesterbor,he is handsome");
    /*
        LV_LABEL_LONG_CROP模式
        若超出Label框的大小直接剪切掉多余的文本
        lv_obj_set_size设置的宽和高都是有效的
        不具有自动换行功能
        */
    //lv_label_set_long_mode(Label1,LV_LABEL_LONG_CROP);
    //lv_obj_set_width(Label1,100);
    lv_obj_set_size(Label1,50,16);
    //lv_label_set_text(Label1,"I am Lesterbor,he is handsome");

    //设置文本对齐方式(只能是水平方向)
    //不能设置为LV_LABEL_LONG_EXPAND因为其设置不了label宽度
    //lv_label_set_long_mode(Label1,LV_LABEL_LONG_CROP);
    //lv_obj_set_width(Label1,200);
    //lv_label_set_align(Label1,LV_LABEL_ALIGN_CENTER);
    //lv_label_set_text(Label1,"I am Lesterbor");

    //设置文本的重绘色功能
    //需要用##包起来
    //lv_label_set_long_mode(Label1,LV_LABEL_LONG_CROP);
    //lv_obj_set_width(Label1,300);
    //lv_label_set_recolor(Label1,true);
    //lv_label_set_text(Label1,"#ff0000 I# #00ff00 am# #0000ff Lesterbor#");

    //在已有文本中插入文本
    //lv_label_set_text(Label1,"I ambor");
    //lv_label_ins_text(Label1,4," Lester");
    //在末尾插入文本
    //lv_label_ins_text(Label1,LV_LABEL_POS_LAST,",he is handsome");
    //剪切文本(此处将handsome剪切掉了 20开始坐标 9剪切长度)
    //lv_label_cut_text(Label1,20,9);
}




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值