提示:本博客作为学习笔记,有错误的地方希望指正
一、样式当地的风格简介
本次主要讲述lvgl的样式当地的风格,我们前面主要通过样式去设置一些属性,假如我们想要修改某一个对象的风格还要保留原有的一些特性怎么办,这个时候样式的当地风格就会起到作用,改变对象的一些特性而保留原来的一些特性。
二、Style Line API
用于文字样式的API可以在lv_obj_style_gen.h文件中找到,里面有许多的API,看起来似曾相识的样子,对的没错这里面的API相比之前我们学的那些API中多了obj ,这个我的理解主要是针对对象的设置的,可以通过style设置一些对象的基本属性,然后想要修改属性的时候就用对象特征的API去修改实现,将原始的Style的属性和对象被添加的属性分离,这样可以使得一个类型的样式可以使用不同的对象,当一个对象的样式需要改变的时候可以通过带obj的API修改而不影响其他对象使用该样式,这里主要使用改变样式的背景颜色做实验。其他的API一样的使用效果。
void lv_obj_set_style_bg_color(struct _lv_obj_t * obj, lv_color_t value, lv_style_selector_t selector);
三、示例
/*************************************************
* 函数名称 : lv_local_style 转换样式
* 参 数 : 无
* 函数功能 : 转换样式
*************************************************/
void lv_local_style(void)
{
static lv_style_t style; //创建样式
lv_style_init(&style); //初始化样式
lv_style_set_bg_color(&style,lv_palette_lighten(LV_PALETTE_RED,1)); //设置背景颜色
lv_style_set_bg_opa(&style,LV_OPA_COVER); //设置背景透明度
lv_style_set_border_color(&style,lv_palette_main(LV_PALETTE_BLUE)); //设置边框颜色
lv_style_set_border_opa(&style,LV_OPA_80); //设置边框透明度
lv_style_set_border_width(&style,5); //设置边框宽度
//直接继承原始样式
lv_obj_t *obj = lv_obj_create(lv_scr_act()); //创建对象
lv_obj_add_style(obj,&style,0); //将样式添加刀对象中
lv_obj_set_size(obj,80,80); //设置对象的尺寸
lv_obj_set_pos(obj,50,50); //设置对象的位置
//继承原始样式 + 自己需求修改
lv_obj_t *obj1 = lv_obj_create(lv_scr_act());//创建对象
lv_obj_add_style(obj1,&style,0); //将样式添加刀对象中
lv_obj_set_size(obj1,80,80); //设置对象的尺寸
lv_obj_set_pos(obj1,50,150); //设置对象的位置
//局部覆盖背景颜色
lv_obj_set_style_bg_color(obj1,lv_palette_main(LV_PALETTE_ORANGE),LV_PART_MAIN);
}