LVGL V8入门学习 | Styles总结

目录

如何给部件添加样式

什么时候样式会生效

 有哪些样式属性可以设置


样式用于设置部件的外观,以优化显示界面和实现用户交互

典型的样式类型有:

  • Background

  • Border 轮廓

  • Outline 边框

  • Shadow

  • Padding

  • size

void lv_style_test()
{
    static lv_style_t style;
    lv_style_init(&style);
    //设置大小
    lv_style_set_width(&style, 100);
    lv_style_set_height(&style, 50);
    //设置背景颜色和透明度
    lv_style_set_bg_color(&style, lv_color_hex(0xCCFFFF));
    lv_style_set_bg_opa(&style, LV_OPA_50);
    //设置边框宽度、颜色、透明度、应绘制边框的所有侧
    lv_style_set_border_color(&style, lv_palette_main(LV_PALETTE_BLUE));
    lv_style_set_border_width(&style, 5);
    lv_style_set_border_opa(&style, LV_OPA_50);
    lv_style_set_border_side(&style, LV_BORDER_SIDE_FULL);

    lv_style_set_outline_width(&style, 2);
    lv_style_set_outline_color(&style, lv_palette_main(LV_PALETTE_BLUE));
    lv_style_set_outline_pad(&style, 8);    //设置的是边框和部件的外间距

    lv_style_set_shadow_width(&style, 55);
    lv_style_set_shadow_color(&style, lv_palette_main(LV_PALETTE_RED));

    lv_obj_t* obj = lv_obj_create(lv_scr_act());
    lv_obj_set_align(obj, LV_ALIGN_CENTER);
    lv_obj_add_style(obj, &style, LV_PART_MAIN);
}

在vs2019模拟器中运行结果如下

如何给部件添加样式

  • 添加普通样式
static lv_style_t style; 					/* 定义样式变量 */
lv_style_init(&style); 						/* 初始化样式 */
lv_style_set_bg_color(&style, lv_color_hex(0xf4b183)); 	/* 设置背景颜色 */

lv_obj_t * obj = lv_obj_create(lv_scr_act()); 		/* 创建一个部件 */
lv_obj_add_style(obj, & style, LV_STATE_DEFAULT); 	/* 设置部件的样式 */
  • 添加本地样式
lv_obj_t * obj = lv_obj_create(lv_scr_act()); 	/* 创建一个部件 */
/* 设置部件的样式 */
lv_obj_set_style_bg_color(obj, lv_color_hex(0xf4b183),LV_STATE_DEFAULT);	

什么时候样式会生效

lv_obj_add_style函数最后一个参数用于选择添加样式的部件的state或part

关于part可以查阅LVGL官方文档对于各个部件part的说明

以slider为例:

包含主体、手柄及指示器三个部分 

void lv_slider_test()
{
    lv_obj_t* slider = lv_slider_create(lv_scr_act());
    lv_obj_center(slider);
    lv_obj_set_style_bg_color(slider, lv_palette_main(LV_PALETTE_RED),LV_PART_INDICATOR);
    lv_obj_set_style_bg_color(slider, lv_palette_main(LV_PALETTE_RED), LV_PART_KNOB);
}

运行结果如下:

若修改成

void lv_slider_test()
{
    lv_obj_t* slider = lv_slider_create(lv_scr_act());
    lv_obj_center(slider);
    lv_obj_set_style_bg_color(slider, lv_palette_main(LV_PALETTE_RED),LV_PART_INDICATOR|LV_STATE_PRESSED);
    lv_obj_set_style_bg_color(slider, lv_palette_main(LV_PALETTE_RED), LV_PART_KNOB | LV_STATE_PRESSED);
}

则只有当被按下时,指示器和手柄才会显现出红色 

 有哪些样式属性可以设置

  • Pad

    1.1 顶部边距 pad_top
      在顶部设置填充。它使这个方向的内容区域更小。

    1.2 底部边距 pad_bottom
      在底部设置填充。它使这个方向的内容区域更小。.

    1.3 左边距边距 pad_left
      设置左边的填充。它使这个方向的内容区域更小。

    1.4 右边距 pad_right
      设置右侧的填充。它使这个方向的内容区域更小。

    1.5 行边距 pad_row
      设置行之间的填充。由布局使用。

    1.6 列边距 pad_column
      设置列之间的填充。由布局使用。

  • Background

        2.1 背景颜色 bg_color

        2.2 背景颜色透明度 bg_opa

          设置背景的不透明度。值0,LV_OPA_0或LV_OPA_TRANSP表示完全透明,256,LV_OPA_100或 LV_OPA_COVER表示完全覆盖,其他值或LV_OPA_10、LV_OPA_20等表示半透明。

        2.3 背景的渐变颜色 bg_grad_color

          设置背景的渐变颜色。仅在grad_dir不是时使用LV_GRAD_DIR_NONE

        2.4 背景渐变的方向 bg_grad_dir

          设置背景渐变的方向。可能的值为LV_GRAD_DIR_NONE/HOR/VER。

        2.5 前景颜色停止 bg_main_stop

          设置渐变背景色的起点。0 表示顶部/左侧,255 表示底部/右侧,128 表示中心,依此类推

        2.6 背景渐变颜色起始点 bg_grad_stop

          设置背景渐变颜色的起点。0 表示顶部/左侧,255 表示底部/右侧,128 表示中心,依此类推

  • Border

        3.1 边框颜色 border_color

           设置边框颜色

        3.2 边框透明度 border_opa

          设置边框的 opcitiy。值0,LV_OPA_0或LV_OPA_TRANSP表示完全透明,256,LV_OPA_100或LV_OPA_COVER表示完全覆盖,其他值或LV_OPA_10、LV_OPA_20等表示半透明。

        3.3 边框宽度 border_width

          设置边框的宽度。只能使用像素值。

        3.4 边框位置 border_side

          设置应绘制边框的任何一侧。可能的值为LV_BORDER_SIDE_NONE/TOP/BOTTOM/LEFT/RIGHT/INTERNAL

例如。LV_BORDER_SIDE_TOP | LV_BORDER_SIDE_LEFT

  • 外轮廓Outline

        4.1 轮廓宽度 outline_width

          以像素为单位设置轮廓的宽度。

        4.2 轮廓颜色 outline_color

          设置轮廓的颜色。

        4.3 轮廓透明度 outline_opa

          设置轮廓的不透明度。值0,LV_OPA_0或LV_OPA_TRANSP表示完全透明,256,LV_OPA_100或 LV_OPA_COVER表示完全覆盖,其他值或LV_OPA_10、LV_OPA_20等表示半透明。

        4.4 轮廓边距 outline_pad

          设置轮廓的内边距,即对象与轮廓之间的间隙

  • 样式阴影Shadow

        5.1 阴影宽度 shadow_width

          以像素为单位设置阴影的宽度。该值应 >= 0。

        5.2 阴影x轴偏移 shadow_ofs_x

          在 X 方向以像素为单位设置阴影的偏移量。

        5.3 阴影y轴偏移 shadow_ofs_y

          在 Y 方向以像素为单位设置阴影的偏移量。

        5.4 阴影拓展 shadow_spread

          进行阴影计算以使用更大或更小的矩形作为基础。该值可以在像素 t 使区域更大/更小

        5.5 阴影颜色 shadow_color

          设置阴影的颜色

        5.6 阴影透明度 shadow_opa

          设置阴影的不透明度。值0,LV_OPA_0或LV_OPA_TRANSP表示完全透明,256,LV_OPA_100或 LV_OPA_COVER表示完全覆盖,其他值或LV_OPA_10、LV_OPA_20等表示半透明。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: LVGL V8 是一款高性能嵌入式图形库,它的中文手册对于中国开发者来说是一份非常重要的资料。LVGL V8 中文手册详细介绍了该库的各种特性、使用方法和实现原理。其中包括了 LVGL V8 的基础结构、对象、图元、样式等基础概念,还有详细的 API 参考和使用示例。 手册开头介绍了 LVGL V8 的基础知识,包括该库的基础设计、适用范围、适配平台等内容。接着,手册通过一个简单的 Hello World 项目介绍了如何在开发板上使用 LVGL V8,还介绍了如何使用 LVGL 的物理内存布局优化机制,避免使用较大的内存块。 在 LVGL V8 的中文手册中,对象是最核心的概念,手册详细介绍了各种对象的类型与用法,如基础对象、容器对象、文本对象、图像对象等。手册还介绍了 LVGL 的事件模型,解释了事件回调函数的使用方法和意义。除此之外,手册还介绍了 LVGL 的样式系统、动画框架等细节内容。 总体来说,LVGL V8 的中文手册非常详细,对于希望在嵌入式平台上使用 LVGL 开发界面的开发者来说,是一份非常重要的资料。手册详细介绍了该库的各种概念和细节,并提供了丰富的使用示例,非常适合初学者和专业开发人员使用。 ### 回答2: lvgl v8中文手册是一个相当详细、全面的用户手册,该手册主要是为了方便开发者在使用lvgl v8时可以快速入门,解决在实际开发过程中所遇到的各种问题。以下是本人对lvgl v8中文手册的一些了解和使用体验。 首先,lvgl v8中文手册的内容十分详细和系统,涉及的知识点涵盖了lvgl v8的核心概念、基础组件、布局、主题、动画、图像等方面的内容,而且每一章节都有大量的实例代码和图例,方便用户理解和学习。 其次,lvgl v8中文手册的组织结构十分清晰,每个章节都有明确的标题和目录,使得用户可以轻松找到所需的内容。而且,手册中的例子和代码片段也很详细,可以帮助用户更加深入地理解各个组件的使用方法和实现原理。 另外,lvgl v8中文手册还给出了各种样式、主题以及动画效果,这些都是使用lvgl v8时需要注意的一些方面,而且lvgl v8中文手册给出的解决方案和最佳实践也很实用,可以帮助用户在开发过程中避免一些常见的错误。 总之,lvgl v8中文手册是一个非常优秀的开发文档,对需要使用lvgl v8的开发者来说是一个不可或缺的参考工具,对于刚开始接触和了解lvgl v8的用户,这个手册更是一个非常好的教程,可以帮助他们顺利入门。 ### 回答3: LVGL v8是一款基于C语言开发的开源GUI库,具有轻量级、高效、可裁剪、跨平台等特点,适用于各种嵌入式应用的UI设计和开发。其中文手册详细介绍了LVGL v8库的使用方法、API接口、示例代码等内容,可以很好地帮助开发人员学习和掌握该库的使用。 手册的目录结构清晰、条理分明,涵盖了LVGL v8库的各个方面,包括库的概述、主循环、基本对象、容器对象、图形对象、矢量对象、特效、输入和操作、图像和字体、样式、动画、调试等内容。每个章节都以简洁明了的语言和示例代码的形式进行介绍,非常易于理解和实践。 在手册中,我们可以了解到LVGL v8库是如何创建窗口和控件、设置样式和属性、注册事件回调函数、处理输入事件等等。在对于各种对象的使用中,将以控件为主展示其使用方法。例如,对于文本框,手册详细介绍了其创建方式、风格设置、插入文本、删除文本、获取文本内容等相关功能。除此之外,手册中还介绍了LVGL v8库的特效、输入和操作、图像和字体、样式、动画等方面的内容。 总体上,LVGL v8中文手册内容丰富、详细全面、易于理解和操作。对于开发人员而言,该手册是一本不可多得的优秀参考书,可以帮助他们轻松地掌握LVGL v8的使用,并在实际项目中进行灵活高效的UI设计开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值