提示:本博客作为学习笔记,有错误的地方希望指正
一、多种风格样式简介
本次主要讲述lvgl的多种风格样式,多种样式风格和前面的Local style 有点类似,这一主要讲述的是一个对象可以继承多个样式的风格,和C++ 编程有点类似,对象风格的继承性。
二、多种风格样式 API
这里API都是前面的一些API主要有背景、边框、阴影、尺寸、字体几个设置。
三、示例
/*************************************************
* 函数名称 : lv_multiple_styles 多种风格样式
* 参 数 : 无
* 函数功能 : 多种风格样式
*************************************************/
void lv_multiple_styles(void)
{
static lv_style_t style_base; //创建样式
lv_style_init(&style_base); //初始化样式
lv_style_set_radius(&style_base,10); //设置圆角
lv_style_set_bg_color(&style_base,lv_palette_main(LV_PALETTE_BLUE)); //设置背景颜色
lv_style_set_border_color(&style_base,lv_palette_darken(LV_PALETTE_BLUE,3)); //设置边框颜色
lv_style_set_border_width(&style_base,2); //设置样式边框宽度
lv_style_set_shadow_width(&style_base,10); //设置阴影宽度
lv_style_set_shadow_ofs_y(&style_base,5); //设置阴影y轴偏移方向
lv_style_set_shadow_opa(&style_base,LV_OPA_50); //设置阴影透明度
lv_style_set_text_color(&style_base,lv_color_white()); //设置字体颜色
lv_style_set_width(&style_base,100); //设置样式宽度
lv_style_set_height(&style_base,LV_SIZE_CONTENT); //设置样式高度
static lv_style_t style_warning; //创建样式
lv_style_init(&style_warning); //初始化样式
lv_style_set_bg_color(&style_warning,lv_palette_main(LV_PALETTE_YELLOW)); //设置背景颜色
lv_style_set_border_color(&style_warning,lv_palette_darken(LV_PALETTE_YELLOW,3));//设置边框颜色
lv_style_set_text_color(&style_warning,lv_palette_darken(LV_PALETTE_YELLOW,4)); //设置字体颜色
lv_obj_t * obj_base = lv_obj_create(lv_scr_act()); //创建对象
lv_obj_add_style(obj_base,&style_base,0); //将样式添加到对象中
lv_obj_align(obj_base,LV_ALIGN_LEFT_MID,20,0); //设置样式居左边居中
lv_obj_t * label_base = lv_label_create(obj_base); //创建对象 基于obj_base
lv_label_set_text(label_base,"Base"); //设置Label显示字
lv_obj_center(label_base); //居中Label相对于父对象
lv_obj_t * obj_warning = lv_obj_create(lv_scr_act()); //创建对象
lv_obj_add_style(obj_warning,&style_base,0); //将样式添加到对象中
lv_obj_add_style(obj_warning,&style_warning,0); //将样式添加到对象中
lv_obj_align(obj_warning,LV_ALIGN_RIGHT_MID,-20,0); //设置样式居右边居中
lv_obj_t * label_warning = lv_label_create(obj_warning); //创建对象 基于obj_warniing
lv_label_set_text(label_warning,"Warning"); //设置Label显示字
lv_obj_center(label_warning); //居中Label相对于父对象
}