超好用的图标库在 LVGL 上的转换与支持

算法聆风鹤
• 阅读 1488

1.前言

上一篇文章,写了常用的图标库有哪些,本文章就以阿里图标库Iconfont为例,写写图标库到底是个啥!以及,如何使用在LVGL之中。

2.图标其实是一种字体

首先,我们注册iconfont,然后把自己心仪的图标加入购物车,最后进入购物车,选择下载源代码即可。举个栗子,下图就是我下载下来的图标内容:
超好用的图标库在 LVGL 上的转换与支持

第一次看到这几个文件时,不知道有什么用,可能会直接删除,但万万不可,打开 iconfont.css 文件可以在 @font-face 中都有引用这几个文件。查询资料后得知:虽然现代浏览器支持自定义字体样式,并且可以通过 @font-face 引入自定义的字体,但是各个浏览器对于字体样式是存在兼容性问题的,而这几个文件就是分别处理对应浏览兼容性问题的。

在写这篇文章之前,我一直以为上图中的“图标”是一个个的图片组成,但学习总是给人新知,现在我知道了它们只是一种字体,类似于“宋体”、“楷体”这种。如果我们要使用它们,也只需要在 css 文件中使用 @font-face 引入这种字体即可。@font-face 是 css3 的一个语法,刚兴趣的可以自行阅读 @font-face 用法 。

3.LVGL图标转换

对于图标这种字体转换,和普通字体转换类似,唯一不同的是就是需要输入你的图标的Unicode编码。在图标源码中,有两个文件需要注意:

  1. iconfont.json:内部有unicode编码,而我们则需要将Unicode编码转成Utf-8编码,可以自行百度。
  2. iconfont.ttf:则和普通的字体转换一样,使用LVGL官方的字体转换工具进行转换。需要注意的是:range那一项填写unicode值即可。

4.使用第三方图标

建议把该文件放到项目工程文件夹里面,然后使用我们的 CUBE 工具,输入命令 scons --ide=mdk5 -s 把它加入编译系统中去。或者,自己使用 keil 手动添加也是可以的。 其次,就是如何使用自己的定制字体,代码如下:

    #define MY_ICON_RILI "\xF0\x90\x83\x88"
    LV_FONT_DECLARE(lv_font_icon);
    lv_obj_t *label = lv_label_create(lv_scr_act());
    lv_obj_set_style_text_font(label,&lv_font_icon,0);
    lv_label_set_text(label,MY_ICON_RILI);

5.关注&&联系

开源轻量操作系统: https://gitee.com/cmcc-oneos/OneOS-Lite

docs文档中心: https://oneos-lite.com/

知知乎乎:蓁蓁

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
皮卡皮卡皮 皮卡皮卡皮
4年前
「uniapp」自定义iconfont
1.进入2.搜索自己需要的图标点击加入购物车中3.将购物车中的图标添加到项目中首先进入购物车点击添加至项目,没有项目就新建一个项目4.将图标下载至本地5.将文件复制到uniapp项目中//将.ttf文件@/common引入@fontfacefontfamily:"iconfont";/Projectid2570483
她左右 她左右
4年前
微信小程序 - 引入字体图标
网站图标要想做到清晰无锯齿,使用普通图片或者雪碧图都很难达到这个目的,一般我们都会引入字体图标(svg转font,使用图标像使用字体一样,详见《web页面使用字体图标》,那么如何在微信小程序中使用自定义图标呢?请看详细步骤:1、从上选择喜欢的图标加入购物车,在购物车弹窗中点击“下载代码”后,解压阿里图库加入购物车购物车下载代码图标文件内容2.、进入导入第
CuterCorley CuterCorley
4年前
uni-app入门教程(9)字体库、自定义组件、打包和新闻实战
前言本文主要介绍了4方面内容:在uniapp项目中使用iconfont提供的图标字体库,美化页面;实现自定义组件,并且可以自定义属性和实现父子组件之间的消息传递;微信小程序预览和真机测试,APP端云打包和本地打包;新闻列表和详情实战练习。一、使用iconfont字体库uniapp中可以使用iconfont()提供的图标字体。大致过程如下:
Stella981 Stella981
3年前
AndroidStudio封装SDK的那些事
<divclass"markdown\_views"<!flowchart箭头图标勿删<svgxmlns"http://www.w3.org/2000/svg"style"display:none;"<pathstrokelinecap"round"d"M5,00,2.55,5z"id"raphael
Stella981 Stella981
3年前
Shodan的http.favicon.hash语法详解与使用技巧
  在Shodan搜索中有一个关于网站icon图标的搜索语法,http.favicon.hash,我们可以使用这个语法来搜索出使用了同一icon图标的网站,不知道怎么用的朋友请参考我上一篇(https://www.oschina.net/action/GoToLink?urlhttps%3A%2F%2Fwww.cnblogs.com%2Fmia
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Stella981 Stella981
3年前
JOptionPane修改图标
1.在Linux平台下.JOptionPane会显示Java默认的图标,在window平台不显示图标,如何替换这个图标了?2JOptionPane.setIcon(Icon)修改的是内容区域的icon,而不是左上角的Icon.所以需要通过修改Jdialog/Frame的图标来达到修改默认图标的问题.3.代码:if(JOptio
Stella981 Stella981
3年前
Android一个包含表格的图标库
之前有写过一个图表lib,但是开发的速度,大多很难跟上产品需求变化的脚步,所以修改了下原先的图表库,支持图表下面能整合table显示对应的类目,用曲线替换了折线,支持多曲线的显示,增加了显示的动画,,增加了一些可定制的属性,支持水平柱状图和叠加柱状图,以及多曲线图和饼状图的显示1.效果图!image(https://oscim
算法聆风鹤
算法聆风鹤
Lv1
我做的所有改变,只为了进入你的世界
文章
3
粉丝
0
获赞
0