Android修改系统默认字体


前言

Android系统中的字体配置文件为/system/etc/fonts.xml
关于fonts.xml文件的解读可以参考
Android fonts相关知识以及fonts.xml解读
在这里插入图片描述
从图上可以看出,Android系统默认字体名为sans-serif,所使用的是Roboto系列的字体文件。如果不做另外的设置,那么我们写的程序默认会使用的就是sans-serif,也即是Roboto系列的字体。
因此,要修改系统默认的字体,一般的方法也即是修改/system/etc/fonts.xml文件,修改其中的sans-serif为使用其他的ttf文件。
我们在这里不修改源生的fonts.xml文件,而是新增custom_fonts.xml配置文件。主旨是要将字体配置文件以及对应的ttf文件放到vendor下以减小和源码的耦合。

一、方案

方案的主要工作是:

  • 将定制的custom_fonts.xml配置文件编译到系统中。
  • 将自定义的字体ttf文件编译到系统中。
  • 修改系统代码,使得优先加载使用custom_fonts.xml

1、将定制的custom_fonts.xml配置文件编译到系统中

/vendor/XXX/fonts/mydevice_overlay/fonts/Android.mk
这个mk指定了编译custom_fonts.xml模块,会将custom_fonts.xml文件编译到/system/etc/custom_fonts.xml

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := custom_fonts.xml
LOCAL_MODULE_CLASS := ETC
LOCAL_PREBUILT_MODULE_FILE := $(LOCAL_PATH)/custom_fonts.xml

include $(BUILD_PREBUILT)

/vendor/XXX/fonts/mydevice_overlay/fonts/fonts.mk
该mk用于添加custom_fonts.xml模块到系统,并引用了vendor/XXX/fonts/oem-lobster/fonts.mk

PRODUCT_PACKAGES := \
    custom_fonts.xml \

$(call inherit-product-if-exists, vendor/XXX/fonts/oem-lobster/fonts.mk)

/vendor/XXX/fonts/mydevice_overlay/fonts/custom_fonts.xml
custom_fonts.xml是从/system/etc/fonts.xml拷贝而来,我们对其进行一些修改,将调整默认字体从roboto调整为为其他(这里举例为Lobster-Regular.ttf)。如果有别的字体定义内容,也可以一并在此修改。

<familyset version="23">
    <!-- first font is default -->
    <family name

相关推荐

  1. Android修改Spinner默认文字颜色

    2024-02-09 15:42:02       31 阅读
  2. 修改android11的默认桌面

    2024-02-09 15:42:02       17 阅读
  3. HiSilicon352 android9.0 添加并设置默认系统字库

    2024-02-09 15:42:02       14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-02-09 15:42:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-02-09 15:42:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-02-09 15:42:02       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-02-09 15:42:02       20 阅读

热门阅读

  1. DataEase

    DataEase

    2024-02-09 15:42:02      28 阅读
  2. 你好,2024——有梦就去追

    2024-02-09 15:42:02       37 阅读
  3. 多线程(一)

    2024-02-09 15:42:02       27 阅读
  4. loss的相对曲率的测量

    2024-02-09 15:42:02       32 阅读
  5. 第58讲 动态数据渲染订单查询实现

    2024-02-09 15:42:02       28 阅读
  6. FPGA时钟资源与设计方法——Xilinx(Vivado)

    2024-02-09 15:42:02       29 阅读
  7. EEEE3084 Scalable cross platform software design

    2024-02-09 15:42:02       26 阅读
  8. c入门第十一篇——物以类聚(数组)

    2024-02-09 15:42:02       26 阅读