LVGL官方文档-7.11.0-15-Overview-Fonts

在LVGL中,字体是位图和为了渲染字母的图像所需的其他信息的集合。字体存储在lv_font_t类型的变量中,可以设置于Style的text_font字段,例如:

lv_style_set_text_font(&my_style, LV_STATE_DEFAULT, &lv_font_montserrat_28);  /*Set a larger font*/

字体有个bpp(bits per pixel)属性,它的意思是用多少位来描述字体中的一个像素。像素的值决定了像素的不透明度。这样的话,bpp越高,字母的边缘就越光滑。bpp可取的值有1,2,4和8(值越大,质量越好)。

bpp也影响了存储font所用的内存,举例来说,bpp=4与bpp=1相比,内存用量几乎大了4倍。

Unicode support

LVGL支持UTF-8编码的Unicode字符。编写代码的编辑器需要配置保存格式为UTF-8(通常这是默认选项),并且确保lv_conf.h中LV_TXT_ENC设置为了LV_TXT_ENC_UTF8(这也是默认值)。

可以用下面的代码测试配置是否正确:

lv_obj_t * label1 = lv_label_create(lv_scr_act(), NULL);
lv_label_set_text(label1, LV_SYMBOL_OK);

Build-in fonts

有一些内置的不同大小的字体,可以在lv_conf.h用LV_FONT_…宏来使能。

Normal fonts

包含所有的ASCII字符,degree符号(U+00B0),bullet符号(U+2022)和后面的内置符号。

  • LV_FONT_MONTSERRAT_12 12像素字体
  • LV_FONT_MONTSERRAT_14 14像素字体
  • LV_FONT_MONTSERRAT_16 16像素字体
  • LV_FONT_MONTSERRAT_18 18像素字体
  • LV_FONT_MONTSERRAT_20 20像素字体
  • LV_FONT_MONTSERRAT_22 22像素字体
  • LV_FONT_MONTSERRAT_24 24像素字体
  • LV_FONT_MONTSERRAT_26 26像素字体
  • LV_FONT_MONTSERRAT_28 28像素字体
  • LV_FONT_MONTSERRAT_30 30像素字体
  • LV_FONT_MONTSERRAT_32 32像素字体
  • LV_FONT_MONTSERRAT_34 34像素字体
  • LV_FONT_MONTSERRAT_36 36像素字体
  • LV_FONT_MONTSERRAT_38 38像素字体
  • LV_FONT_MONTSERRAT_40 40像素字体
  • LV_FONT_MONTSERRAT_42 42像素字体
  • LV_FONT_MONTSERRAT_44 44像素字体
  • LV_FONT_MONTSERRAT_46 46像素字体
  • LV_FONT_MONTSERRAT_48 48像素字体

Special fonts

  • LV_FONT_MONTSERRAT_12_SUBPX 和12像素的普通字体一样,但是增加了子像素卷积渲染。
  • LV_FONT_MONTSERRAT_28_COMPRESSED 和28像素的普通字体一样,但是增加了用3bpp压缩。
  • LV_FONT_DEJAVU_16_PERSIAN_HEBREW 在16像素字体的基础上增加了阿拉伯字母、希伯来字母、波斯字母支持
  • LV_FONT_SIMSUN_16_CJK16 在16像素字体的基础上增加了1000+常用中日韩汉字部首补充
  • LV_FONT_UNSCII_8 只支持ASCII字符的8像素字体
  • LV_FONT_UNSCII_16 只支持ASCII字符的16像素字体

内置字体是全局变量,变量名形如lv_font_montserrat_16。要在style中使用,只需要像上面一样增加一个指向字体的指针。

内置字体的bpp=4,包含ASCII字符,用Montserrat字体。

除了ASCII字符,内置字体中还增加了下列符号:

在这里插入图片描述
使用符号的方法如下:

lv_label_set_text(my_label, LV_SYMBOL_OK);

也可以和字符串一起使用:

lv_label_set_text(my_label, LV_SYMBOL_OK "Apply");

或者是几个符号一起使用:

lv_label_set_text(my_label, LV_SYMBOL_OK LV_SYMBOL_WIFI LV_SYMBOL_PLAY);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值