LVGL显示中文字体及其它语言文字详细笔记教程

        在前面几篇博客文章中,已经对LVGL的移植和使用进行了较为详细的介绍,在本文中将讲解如何在LVGL的控件中显示中文字体及其它语言字体

LVGL在VScode中安装模拟器运行配置笔记教程_vscode lvgl-CSDN博客

LVGL移植到STM32 MCU平台详细经验笔记教程-CSDN博客

1、LVGL自带汉字库CJK

        在LVGL的官方库中,其实已经内置了一个CJK中文字库:中日韩越统一表意文字(CJKV Unified Ideographs),目的是要把分别来自中文、日文、韩文中,本质相同、形状一样或稍异的表意文字(主要为汉字,但也有仿汉字如日本国字、韩国独有汉字)于ISO 10646及Unicode标准内赋予相同编码。越南文后来亦加入此计划,所以亦有“CJKV”的称呼。

        CJK库位于LVGL的路径下的src文件夹下的font子文件夹中lv_font_simsun_16_cjk.c,这个文件中包含了日常使用的汉字数量有数千个。

        虽然该库日常使用的汉字数量有数千个,再加上生僻字,数量达到数万个,但缺少很多简体中文中经常使用的汉字,如“问”字。因此在使用之前,可以点击该字库,去查找是否能够满足项目场景中需要使用的汉字,如果不能满足,则需要进行下面开始的工作,即往LVGL库中添加汉字字库或其它语言的字库。

使用自带的CJK汉字库需要将lv_conf.h文件中的CJK字库宏定义开启,否则不能使用。

2、自定义LVGL汉字库

        除了使用LVGL系统自带的CJK汉字库外,还可以采取自定义汉字库的形式,这就需要我们准备这两个东西:字体文件字体转换器

        字体文件可以互联网上随便下载,如浏览器直接搜索:GB2312字体下载;如果使用LVGL官方的字体转换器,那么下载的字体文件必须是TTF/WOFF格式的。使用其它平台的字体转换器,则需要根据对应字体转换平台的要求进行下载。

        在本笔记教程中,直接搜索下载了GB2312楷体的ttf格式字体文件,字体文件下载打开后如下图所示。

在准备好字体文件后,可以直接进入LVGL官方的在线字体转换工具网站:Online font converter - TTF or WOFF fonts to C array | LVGLicon-default.png?t=N7T8https://lvgl.io/tools/fontconverter

        将LVGL文件加入到工程中时,如果需要使用生成的字体,需要将字体进行声明:

//LV_FONT_DECLARE(字体名);
LV_FONT_DECLARE(lv_font_gb2312_regular_script_14);//样式中设置字体API接口:
lv_obj_set_style_text_font();    //私有(本地)样式
lv_style_set_text_font();        //普通(共享)样式

自定义的中文字库加入到工程中,编译运行后的效果图如下图所示:

3、Unicode编码表

        Unicode 是国际标准字符集,它将世界各种语言的每个字符定义一个唯一的编码,以满足跨语言、跨平台的文本信息转换

        Unicode 字符集的编码范围是 0x0000 - 0x10FFFF , 可以容纳一百多万个字符, 每个字符都有一个独一无二的编码,也即每个字符都有一个二进制数值和它对应,这里的二进制数值也叫 码点 , 比如:汉字 "中" 的 码点是 0x4E2D, 大写字母 A 的码点是 0x41。

Unicode官网可以查询具体的字符编码值:Unicode – The World Standard for Text and Emoji

汉字编码范围部分表:

字符Unicode分布表:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/14291.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vue koa post 请求代理失败问题总结

场景是在使用 koa 写接口时,客户端发送 post 请求,服务端会报下面这个错误,导致接口未能访问成功: 前端接口一直 Pending 状态, 解决方案:走的是本地 mock 数据,未访问服务端的接口 总结&#x…

正则表达式及其应用

demo1: package 正则表达式;public class demo1 {public static void main(String[] args) {//只能是a b cSystem.out.println("a".matches("[abc]"));//true//前后校验字符个数需要一致System.out.println("ab".matches("[abc]"));/…

[JAVASE] 类和对象(五) -- 抽象类和接口

目录 一. 抽象类 1.1 抽象类的定义 1.2 抽象类的实现 1.3 抽象类的作用 1.4 抽象类注意事项 二. 接口 2.1 接口的定义 2.2 接口的实现 2.3 接口的作用 2.4 接口注意事项 三. 总结 一. 抽象类 1.1 抽象类的定义 如果一个类中没有包含足够的信息来描绘一个具体的对象, 那么…

远程PLC、工控设备异地调试,贝锐蒲公英异地组网方案简单高效

北京宇东宁科技有限公司专门提供非标机电设备,能够用于金属制品的加工制造。设备主要采用西门子的PLC作为控制系统,同时能够连接上位机用于产量、温度、压力、电机运行数据的监控,以及工厂的大屏呈现需求。目前,客户主要是市场上的…

代码随想录算法训练营第三十三天|1005.K次取反后最大化的数组和,134. 加油站

1005.K次取反后最大化的数组和 1.取反次数<负数个数 优先把绝对值较大的负数取反 2.取反个数>负数个数 先把所有负数都取反成正数&#xff0c;之后把所有次数都用来对绝对值最小的数字进行取反 134. 加油站 这里首先每一个站台都是有净收益的&#xff0c;净收益等于该…

百度陈之若:第一批大模型伙伴已经实现财富自由了

大模型继续在 2024 年的春天里疾驰而进。 2024 年 4 月 9 日&#xff0c;百度智能云在成都举行的首届 GENERATE 全球生态大会上&#xff0c;公布了过去一年大模型生态建设的最新“成绩单” 。 目前&#xff0c;已经有超过 8.5 万客户在使用千帆大模型平台&#xff0c;开发了超…

EI稳定检索--人文社科类会议(ICBAR 2024)

【ACM独立出版】第四届大数据、人工智能与风险管理国际学术会议 (ICBAR 2024) 2024 4th International Conference on Big Data, Artificial Intelligence and Risk Management 【高录用•快检索&#xff0c;ACM独立出版-稳定快速EI检索 | 往届均已完成EI, Scopus检索】 【见…

大屏幕适配方法之:transform:scale()

CSS3新增的属性transform主要用于设置元素的变形&#xff0c;比如旋转、倾斜、缩放等。我们今天要用到的正式它的缩放功能transform:scale() 取值 单一数值 单一的数值即指定了一个缩放系数&#xff0c;同时作用于 X 轴和 Y 轴让该元素进行缩放&#xff0c;相当于指定了单个值…

深入理解Java中的异步编程与CompletableFuture

在现代的软件开发中&#xff0c;异步编程已经成为处理并发和提升性能的重要手段之一。Java作为一门流行的编程语言&#xff0c;提供了多种异步编程的方式。其中&#xff0c;CompletableFuture是Java 8引入的一个强大的工具&#xff0c;用于简化异步编程并提高代码的可读性和可维…

Python快速提取局域网在线IP及对应MAC地址

在网络管理和安全监控中,了解局域网内的在线设备及其对应的IP和MAC地址是非常重要的。本文将介绍如何使用Python快速提取局域网内所有在线设备的IP地址及其对应的MAC地址。我们将使用Python的第三方库和一些简单的网络扫描技术,使这一过程变得高效且自动化。无论你是网络管理…

SAPUI5基础知识2 - 手动创建一个SAPUI5的项目

1. 前言 在本篇文章中&#xff0c;我们将手动一步一步建立出第一个SAPUI5的 ‘Hello World!’ 项目。 2. 步骤详解 2.1 在BAS中建立Dev Space 进入SAP Business Application Studio的Dev Space Manger&#xff0c;选择创建Dev Space。 勾选HTML5 Application Template插件…

[Linux] shell程序编写

一、shell是什么 Linux严格意义上说的是一个操作系统&#xff0c;我们称之为“核心&#xff08;kernel&#xff09;“ &#xff0c;但我们一般用户&#xff0c;不能直接使用kernel。而是通过kernel的“外壳”程序&#xff0c;也就是所谓的shell&#xff0c;来与kernel沟通。 …

数据读取及分隔方法

文章目录 读取数据1. 读取文本文件2.pandas库读取数据3.读取JSON文件 数据分隔方法1.split()2.re.split()3.splitlines() 读取数据 1. 读取文本文件 读取文本文件&#xff1a;可以使用内置的open()函数来打开文本文件&#xff0c;并使用read()或readlines()方法读取文件内容。…

Linux:网页的各种状态码及其解释

Linux&#xff1a;网页的状态码 定义&#xff1a;状态码由三位数值组成&#xff0c;第一位数值定义了响应的类别&#xff0c;且有五种可能取值 状态码含义详解1xx指示信息&#xff08;信息性状态码&#xff09;表示请求已接受&#xff0c;继续处理2xx成功表示请求已被成功接受…

overflow:scroll不生效解决

参考 问题 在给组织架构组件的外框设置overflow:scroll的时候不生效&#xff0c;没有显示滚动条 原因 这个组件里面实在是包裹太多层了&#xff0c;得找到离内容层最近的那层包裹层设置overflow才有效 解决 找到离内容层最近的那层包裹层设置overflow

OpenWrt改网桥模式(AP模式)

OpenWrt改网桥模式&#xff08;AP模式&#xff09; 点击“接口” 删掉所有 wan 接口 点击“设备”&#xff0c;配置“br-lan" 点击网桥接口&#xff0c;勾选所有接口 点击保存 添加新接口&#xff08;不添加的话路由器自身系统没网&#xff09; 返回 “网络” - “接…

k8s部署presto

&#xff08;作者&#xff1a;陈玓玏&#xff09; 一、前提条件 已部署k8s&#xff1b;已部署hadoop和hive&#xff0c;可参考以下链接&#xff1a; https://blog.csdn.net/weixin_39750084/article/details/136750613?spm1001.2014.3001.5502 https://blog.csdn.net/wei…

Linux-挂盘-分区-卸盘

Linux-挂盘-分区-卸盘 1. 添加硬盘 2. 查看硬盘 [rootlocalhost /]# lsblk # 查看我们新添加的磁盘 NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 80G 0 disk ├─sda1 8:1 0 1G 0 part /boot └─sda2 …

pdf使用pdfbox切割pdf文件MultipartFile

引入依赖&#xff1a; <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox</artifactId><version>2.0.25</version></dependency>测试代码&#xff1a; import io.choerodon.core.iam.ResourceLevel; impo…

百度智能云参与信通院多项边缘计算标准编制,「大模型时代下云边端协同 AI 发展研讨会」成功召开

1 中国信通院联合业界制定、发布多项标准化成果&#xff0c;推动产业发展 大模型开启了 AI 原生时代&#xff0c;云边端协同 AI 构建了「集中式大规模训练」、「边缘分布式协同推理」新范式&#xff0c;有效降低推理时延和成本&#xff0c;提升数据安全和隐私性&#xff0c;也…