lv_obj_set_style_local_bg_color的具体使用例程
时间: 2023-07-06 14:03:45 浏览: 751
lv_obj_set_style_local_bg_color函数用于设置对象的背景颜色。以下是一个使用例程:
```c
lv_obj_t *obj = lv_obj_create(lv_scr_act(), NULL); // 创建一个对象
lv_obj_set_size(obj, 100, 100); // 设置对象的大小
lv_obj_align(obj, NULL, LV_ALIGN_CENTER, 0, 0); // 将对象居中对齐
// 创建一个样式
static lv_style_t style;
lv_style_init(&style);
lv_style_set_bg_color(&style, LV_STATE_DEFAULT, LV_COLOR_RED); // 设置默认状态下的背景颜色
lv_obj_add_style(obj, LV_OBJ_PART_MAIN, &style); // 将样式应用到对象上
// 设置对象在按下状态下的背景颜色为蓝色
lv_obj_set_style_local_bg_color(obj, LV_OBJ_PART_MAIN, LV_STATE_PRESSED, LV_COLOR_BLUE);
```
在上面的例程中,我们创建了一个大小为100x100的对象,并将其居中对齐。接着,创建了一个样式并将其应用到对象上。最后,我们使用`lv_obj_set_style_local_bg_color`函数将对象在按下状态下的背景颜色设置为蓝色。
相关问题
case KEY_CODE_UP: next_index = index > SET_ID_VOLUME ? (index - 1) : (SET_ID_VOICE_ASSISTANT_SWITCH); next_list = lv_obj_get_child(p_setting_win, next_index); next_bg = lv_obj_get_child(next_list,0); ws01_setting_list_group[next_index].selected = true; ws01_setting_list_group[index].selected = false; lv_obj_remove_style(list, &style_btn_focus, 0); lv_obj_set_style_bg_color(bg, lv_color_hex(0x2e3033), 0); lv_obj_add_style(next_list, &style_btn_focus, 0); lv_obj_set_style_bg_color(next_bg, lv_color_hex(0x558dff), 0); lv_obj_scroll_to_view(next_list, LV_ANIM_OFF); break; case KEY_CODE_DOWN: next_index = index < SET_ID_VOICE_ASSISTANT_SWITCH ? (index + 1) : (SET_ID_VOLUME); next_list = lv_obj_get_child(p_setting_win, next_index); next_bg = lv_obj_get_child(next_list,0); ws01_setting_list_group[next_index].selected = true; ws01_setting_list_group[index].selected = false; lv_obj_remove_style(list, &style_btn_focus, 0); lv_obj_set_style_bg_color(bg, lv_color_hex(0x2e3033), 0); lv_obj_add_style(next_list, &style_btn_focus, 0); lv_obj_set_style_bg_color(next_bg, lv_color_hex(0x558dff), 0); lv_obj_scroll_to_view(next_list, LV_ANIM_OFF); break;
这段代码是用来处理按键操作的。KEY_CODE_UP 表示上移按键,KEY_CODE_DOWN 表示下移按键。当按下上移按键时,会选择上一个选项,当按下下移按键时,会选择下一个选项。同时,还会修改选项的背景颜色,以表示当前选中的选项。其中,lv_obj_get_child 函数用来获取指定对象的指定子对象,lv_obj_remove_style 函数用来移除指定对象的指定样式,lv_obj_add_style 函数用来添加指定对象的指定样式,lv_obj_set_style_bg_color 函数用来设置指定对象的背景颜色,lv_obj_scroll_to_view 函数用来滚动对象到可见区域。
void lv_obj_set_flex_grow(lv_obj_t * obj, uint8_t grow); void lv_style_set_flex_flow(lv_style_t * style, lv_flex_flow_t value); void lv_style_set_flex_main_place(lv_style_t * style, lv_flex_align_t value); void lv_style_set_flex_cross_place(lv_style_t * style, lv_flex_align_t value); void lv_style_set_flex_track_place(lv_style_t * style, lv_flex_align_t value); void lv_style_set_flex_grow(lv_style_t * style, uint8_t value); void lv_obj_set_style_flex_flow(lv_obj_t * obj, lv_flex_flow_t value, lv_style_selector_t selector); void lv_obj_set_style_flex_main_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector); void lv_obj_set_style_flex_cross_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector); void lv_obj_set_style_flex_track_place(lv_obj_t * obj, lv_flex_align_t value, lv_style_selector_t selector); void lv_obj_set_style_flex_grow(lv_obj_t * obj, uint8_t value, lv_style_selector_t selector);
这些函数都是与flex布局相关的函数,用于设置对象的布局方式以及样式。其中,lv_obj_set_flex_grow函数用于设置对象的伸展比例,lv_style_set_flex_flow函数用于设置样式的主轴和交叉轴的方向,lv_style_set_flex_main_place和lv_style_set_flex_cross_place函数用于设置样式的主轴和交叉轴的对齐方式,lv_style_set_flex_track_place函数用于设置样式的轨道对齐方式。而lv_style_set_flex_grow函数则是用于设置样式的伸展比例。另外,还有带有样式选择器的版本,可以更加精细地控制样式的应用。
阅读全文