美文网首页Android知识
QC8916 修改系统默认字体(Android 5.0)

QC8916 修改系统默认字体(Android 5.0)

作者: 水月心刀 | 来源:发表于2016-11-01 20:47 被阅读884次

    涉及文件

    frameworks\base\data\fonts\
    1. fonts.xml
    2. fallback_fonts.xm
    
    3. fonts.mk
    4. Android.mk
    5. ttf字体文件
    

    修改方法

    • 修改fonts.xml,在其中对应位置添加如下代码
    <familyset version="22">
        <!-- first font is default -->
        <!-- add start -->
        <family name="hp">
            <font weight="400" style="normal">Hpsimplifiedhans-light.ttf</font>
            <font weight="700" style="normal">Hpsimplifiedhans-regular.ttf</font>
        </family>
        <!-- 不加下面这句会导致桌面英文数字字体不发生改变 -->
        <alias name="sans-serif" to="hp" />
        <!-- add end -->
        <family name="sans-serif">
     ...
     <!-- modify start -->
        <family lang="zh-Hans">
            <font weight="400" style="normal">Hpsimplifiedhans-light.ttf</font>
            <font weight="700" style="normal">Hpsimplifiedhans-regular.ttf</font>
        </family>
        <family lang="zh-Hant">
            <font weight="400" style="normal">Hpsimplifiedhans-light.ttf</font>
            <font weight="700" style="normal">Hpsimplifiedhans-regular.ttf</font>
        </family>
     <!-- modify end -->
     ...
    </familyset>
    
    • 修改fallback_fonts.xml,在对应位置添加如下代码(该文件在android5.0之后不会被framework读取,但是fonts文件头部注释要求保持同步,具体可参照注释)
    <familyset>
     <!-- add start -->
     <family>
     <fileset>
     <file>Hpsimplifiedhans-light.ttf</file>
     <file>Hpsimplifiedhans-regular.ttf</file>
     </fileset>
     </family>
     <!-- add end -->
     ... 
    </familyset>
    
    • 修改fonts.mk,在对应位置添加如下代码
    # modify start
    PRODUCT_COPY_FILES := \
     frameworks/base/data/fonts/system_fonts.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/system_fonts.xml \
     frameworks/base/data/fonts/fonts.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/fonts.xml \
     frameworks/base/data/fonts/fallback_fonts.xml:$(TARGET_COPY_OUT_SYSTEM)/etc/fallback_fonts.xml
    # modify end
    ifneq ($(MULTI_LANG_ENGINE),REVERIE)
    ...
    # modify
    PRODUCT_PACKAGES := \
     Hpsimplifiedhans-light.ttf \
     Hpsimplifiedhans-regular.ttf \
     ...
    
    • 修改Android.mk 在对应位置添加如下代码
    ifeq ($(MINIMAL_FONT_FOOTPRINT),true)
    ...
    else # !MINIMAL_FONT
    font_src_files += \
       Hpsimplifiedhans-light.ttf \
       Hpsimplifiedhans-regular.ttf \
     ...
    
    • 拷贝ttf字体文件至以下文件夹
    frameworks\base\data\fonts\
    
    • PS:修改mk文件时,需保证前一行换行符之后没有任何字符,后一行前面的空白中没有非法字符。否则编译会报错

    相关文章

      网友评论

        本文标题:QC8916 修改系统默认字体(Android 5.0)

        本文链接:https://www.haomeiwen.com/subject/nsamuttx.html