上没有关于字体系列名称的文档。 但是,如果您查看AOSP,则会在android.graphics.*中加载默认字体。FontListParser从/system/etc/fonts.xml(Android 5.0+)或/system/etc/system_fonts.xml(Android 4.1)中加载默认字体。 默认字体加载在Typeface#init中。
这两个XML文件都有一些文档。 第一种字体是默认字体。 您可以从设备中拉/system/etc/fonts.xml。 设备制造商或自定义ROM可能会更改默认系统字体。
照片ts。 xml(Api 21+)
注意:这是系统字体配置的较新版本(L), 支持更丰富的重量选择。 一些应用程序会期望更老 版本,因此请保持system_fonts.xml和fallback_fonts.xml同步 进行任何更改,即使框架只会读取该文件。
所有带有名称的字体都将添加到默认列表中。 选择字体 基于匹配:完整的BCP-47语言标签(包括脚本),然后 语言,最后排序(第一个包含字形的字体)。
外观顺序也是重量匹配的决胜局。 这是 为什么900重量的Roboto领先700重量-我们 请求800重量时,更喜欢前者。 由于大胆的跨度 有效地增加了300的重量,从而确保900是粗体 与500重量配对,确保足够的对比度。
system_fonts.xml(API 16-20)
系统字体
该文件列出了默认情况下将用于所有支持的字形的字体系列。 每个条目都包含一个家庭,该家庭支持的各种名称,以及 最多四个字体文件。 字体文件按照其样式的顺序列出 支持:常规,粗体,斜体和粗斜体。 如果列出的样式少于四种,则 列出的其他字体文件将支持没有关联字体文件的样式。
第一个家族也是默认字体,它处理未指定的字体请求 特定的字体名称。
系统字体未处理的任何字形都将导致搜索后备字体。 默认的后备字体在文件/system/etc/fallback_fonts.xml中指定,并且在那里 是一个可选文件,供应商可能会提供该文件以指定要使用的其他后备字体 在/vendor/etc/fallback_fonts.xml中。
如果您解析fonts.xml文件,则可以找到哪种字体系列使用哪种字体(请参见此处):
╔════╦════════════════════════════╦═════════════════════════════╗
║ ║ FONT FAMILY ║ TTF FILE ║
╠════╬════════════════════════════╬═════════════════════════════╣
║ 1 ║ casual ║ ComingSoon.ttf ║
║ 2 ║ cursive ║ DancingScript-Regular.ttf ║
║ 3 ║ monospace ║ DroidSansMono.ttf ║
║ 4 ║ sans-serif ║ Roboto-Regular.ttf ║
║ 5 ║ sans-serif-black ║ Roboto-Black.ttf ║
║ 6 ║ sans-serif-condensed ║ RobotoCondensed-Regular.ttf ║
║ 7 ║ sans-serif-condensed-light ║ RobotoCondensed-Light.ttf ║
║ 8 ║ sans-serif-light ║ Roboto-Light.ttf ║
║ 9 ║ sans-serif-medium ║ Roboto-Medium.ttf ║
║ 10 ║ sans-serif-smallcaps ║ CarroisGothicSC-Regular.ttf ║
║ 11 ║ sans-serif-thin ║ Roboto-Thin.ttf ║
║ 12 ║ serif ║ NotoSerif-Regular.ttf ║
║ 13 ║ serif-monospace ║ CutiveMono.ttf ║
╚════╩════════════════════════════╩═════════════════════════════╝