当前位置: 首页 > news >正文

android 13.0 添加系统字体并且设置为默认字体

1.概述

在13.0系统定制化开发中,在产品定制中,有产品需求对于系统字体风格不太满意,所以想要更换系统的默认字体,对于系统字体的修改也是常有的功能,而系统默认也支持增加字体,所以就来添加楷体字体为系统字体,并替换为系统默认字体,
接下来就来分析下替换默认字体的方法

2.添加系统字体并且设置为默认字体的核心类

frameworks/base/data/fonts/
frameworks/base/data/fonts/fonts.mk
frameworks/base/data/fonts/Android.bp
frameworks/base/data/fonts/fonts.xml 

3.添加系统字体并且设置为默认字体核心功能实现和分析

android字体由android 2D图形引擎skia实现,并在Zygote的Preloading classes中对系统字体进行load。
相关文件有:skTypeface.cpp和skFontHost_android.cpp,其中后者是skia针对android平台字体实现的port。
主要的变量有:struct FontInitRec {const char*         fFileName;const char* const*  fNames;     // null-terminated list};
struct FamilyRec {FamilyRec*  fNext;SkTypeface* fFaces[5];};
uint32_t gFallbackFonts[SK_ARRAY_COUNT(gSystemFonts)+1];
load_system_fonts()@skFontHost_android.cpp
 load系统中所有的字体并给每种字体分配唯一的ID,并将字体分为两种:

http://www.lryc.cn/news/195109.html

相关文章:

  • 平面设计师要会3D吗 优漫动游
  • 【LeetCode热题100】--105.从前序与中序遍历序列构造二叉树
  • 缓存设计的创新之旅:架构的灵魂之一
  • Unnatural Instructions: Tuning Language Models with (Almost) No Human Labor
  • uniapp中全局页面挂载组件(H5)
  • 设计模式(1)-设计模式前置基础知识
  • 【05】基础知识:React组件实例三大核心属性 - props
  • JOSEF约瑟 漏电继电器 JD1-200 工作电压:380V 孔径:45mm 50~500mA
  • [题] 差分矩阵 #差分
  • Studio One6.5最新版本新增了对Linux的支持
  • 大模型引发“暴力计算”,巨头加速推进液冷“降温”
  • git log 美化配置
  • Spark 的主要组件及任务分工
  • Apache Spark 中的 RDD是什么
  • idea自动封装方法
  • js正则表达式
  • 服务安全-应用协议rsync未授权ssh漏洞复现
  • [环境搭建]OpenHarmony开发环境搭建
  • [牛客习题]“幸运的袋子”
  • 安科瑞预付费系统在某大型连锁农贸市场的设计应用
  • Spring Boot Bean 注入的常用方式教程
  • Java项目调用Python脚本(基于idea)
  • 前端 JS 经典:i,i++,++i区别
  • EF Core 7.0 新特性之批量修改
  • Vue_Bug error0308010Cdigital envelope routinesunsupported
  • 中科院提出“思维传播”,极大增强ChatGPT等模型复杂推理能力
  • ubuntu20.04安装opencv 3.2.0 报错
  • KubeVela交付
  • 【SpringCloud-10】SCA-nacos
  • 卡顿分析与布局优化