基本使用
// 创建label(有一个默认的文本Text)lv_obj_t * label = lv_label_create(lv_scr_act(), NULL);// 通用属性// 设置位置lv_obj_set_pos(label, 50, 50);// 设置大小lv_obj_set_size(label, 100, 100);// 设置可以点击lv_obj_set_click(label, true);// 设置可以拖拽lv_obj_set_drag(label, true);// 设置动态文本lv_label_set_text(label, "helllo world");// 设置静态文本// lv_label_set_static_text(label, "helllo static");// 设置长文本模式lv_label_set_long_mode(label, LV_LABEL_LONG_BREAK);// 设置对齐方式lv_label_set_align(label, LV_LABEL_ALIGN_RIGHT);
set_text几种方式
lv_label_set_static_text
这是以”静态”的方式设置文本内容,所谓的静态就是标签对象内部不会为这个文本内容 分配内存空间来保存它,而只是引用了一下这个文本指针,好处就是在某些场合下,可以节省内存,坏处就是外部的 text 内容空间不能随意的被释放,否则会引起标签对象的显示出错
lv_label_set_text
用此 API 接口来设置文本时,它会把之前文本所占用的内存空间先给释放掉,然后为这个新文 内容重新分配一个相应大小的内存空间,所以即使外面的 text 指针被释放了,也不会影响此标签控件的显示
长文本模式
enum {
LV_LABEL_LONG_EXPAND, //自动扩展对象的大小来包裹文本内容
LV_LABEL_LONG_BREAK, //保持对象的宽度不变,当文本内容的宽度超过对象的宽度时会自动换行,然后同时自动扩展对象的高度来包裹文本内容的高度
LV_LABEL_LONG_DOT, //保持对象的大小不变,当文本内容太长显示不下时,会在文本末尾显示...三个点的省略号
LV_LABEL_LONG_SROLL, //保持对象的大小不变,当文本内容太长显示不下时,会自动循环向前向后滚动文本
LV_LABEL_LONG_SROLL_CIRC,//保持对象的大小不变,当文本内容太长显示不下时,会自动循环环形滚动文本
LV_LABEL_LONG_CROP, //保持对象大小不变,超过的文本内容将会被剪切掉
};
typedef uint8_t lv_label_long_mode_t;
