提示:本博客作为学习笔记,有错误的地方希望指正
一、向状态添加部件和样式简介
本次主要讲述lvgl的向状态添加部件和样式,通过设置样式可以将样式的属性加载在对象上,这里主要创建一个滑动控件的对象。
二、API
这里主要讲述滑动组件的API,其他的基本前面都叙述完了。API可以在lv_slider.h文件中找到对应的API,
lv_slider_set_mode(lv_obj_t * obj, lv_slider_mode_t mode)中的mode有三种模式,分别是
LV BAR MODE NORMAL Lv横模正态
LV BAR MODE SYMMETRICAL Lv条模对称
LV BAR MODE RANGELv bar模式范围
lv_obj_t * lv_slider_create(lv_obj_t * parent) //创建滑动控件对象
static inline void lv_slider_set_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim) //设置滑动控件对象初始值
static inline void lv_slider_set_left_value(lv_obj_t * obj, int32_t value, lv_anim_enable_t anim) //为滑块的左旋钮设置一个新值
static inline void lv_slider_set_range(lv_obj_t * obj, int32_t min, int32_t max) //设置滑块的值的范围
static inline void lv_slider_set_mode(lv_obj_t * obj, lv_slider_mode_t mode) //设置滑块的模式
static inline int32_t lv_slider_get_value(const lv_obj_t * obj) //获取滑块的值
static inline int32_t lv_slider_get_left_value(const lv_obj_t * obj)//获取滑块左侧旋钮的值
static inline int32_t lv_slider_get_min_value(const lv_obj_t * obj) //获取滑块最小值
static inline int32_t lv_slider_get_max_value(const lv_obj_t * obj)//获取滑块最大值
bool lv_slider_is_dragged(const lv_obj_t * obj) //判断滑块当前是否被拖动
static inline lv_slider_mode_t lv_slider_get_mode(lv_obj_t * slider)//获取滑块当前的模式
三、示例
/*************************************************
* 函数名称 : lv_Add_style_To_Part_And_States 向部件和状态添加样式
* 参 数 : 无
* 函数功能 : 向部件和状态添加样式
*************************************************/
void lv_Add_style_To_Part_And_States(void)
{
static lv_style_t style_indic; //创建样式
lv_style_init(&style_indic); //初始化样式
lv_style_set_bg_color(&style_indic,lv_palette_lighten(LV_PALETTE_RED,3)); //设置背景颜色
lv_style_set_bg_grad_color(&style_indic,lv_palette_main(LV_PALETTE_RED)); //设置下半部分颜色
lv_style_set_bg_grad_dir(&style_indic,LV_GRAD_DIR_HOR); //设置下半部分方向
static lv_style_t style_indic_pr; //创建样式
lv_style_init(&style_indic_pr); //初始化样式
lv_style_set_shadow_color(&style_indic_pr,lv_palette_main(LV_PALETTE_RED));//设置阴影颜色
lv_style_set_shadow_width(&style_indic_pr,10); //设置阴影宽度
lv_style_set_shadow_spread(&style_indic_pr,3); //设置阴影延展 此时刻阴影的宽度为 width + 2 * spread
lv_obj_t * obj = lv_slider_create(lv_scr_act());//创建滑动控件对象
lv_obj_add_style(obj,&style_indic,LV_PART_INDICATOR); //初始化滑动控件对象样式
lv_obj_add_style(obj,&style_indic_pr,LV_PART_INDICATOR | LV_STATE_PRESSED);//初始化滑动控件对象样式
lv_slider_set_value(obj,70,LV_ANIM_OFF); //设置滑动控件对象初始值
lv_obj_center(obj); //居中滑动控件对象
}