Android中的默认字体系列是什么?

时间:2016-09-16 15:45:59

标签: android fonts font-family roboto

从API 16开始,Jellybean Roboto作为可用的字体系列推出。看什么"新"在Android 16中here

android:fontFamily="sans-serif" TextView的默认fontFamily上指定TextView(API 16+中的Roboto)?

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

相当于

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="sans-serif" />

来自Material design typography website

  

&#34; Roboto和Noto是Android和Chrome上的标准字体。&#34;

来自Wiki

  

&#34; Roboto是由Google开发的无衬线字体系列   其移动操作系统Android的系统字体。&#34;

我没有在文档中看到Android的默认fontFamily是什么。见参考文献:

1 个答案:

答案 0 :(得分:48)

d.android.com上没有关于字体系列名称的文档。但是,如果您查看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可能会更改默认系统字体。

fonts.xml (API 21 +)

  

注意:这是系统字体配置的较新(L)版本,     支持更丰富的体重选择。一些应用程序会期望更旧     版本,所以请保持system_fonts.xml和fallback_fonts.xml同步     任何更改,即使框架只会读取此文件。

     

所有带有ohutut名称的字体都会添加到默认列表中。选择字体     基于匹配:完整的BCP-47语言标签,包括脚本,然后只是     语言,最后是order(包含字形的第一个字体)。

     

外观顺序也是重量匹配的决胜局。这是     为什么Roboto的900个权重在700个权重之前 - 我们     当要求800重量时,更喜欢前者。大胆的跨度     有效地增加300重量,这确保900是大胆的     配合500重量,确保足够的对比度。

system_fonts.xml (API 16-20)

  

系统字体

     

此文件列出了默认情况下将用于所有支持的字形的字体系列。     每个条目都包含一个系列,该系列支持的各种名称,以及     最多四个字体文件。字体文件按其样式的顺序列出     支持:常规,粗体,斜体和粗体斜体。如果列出的样式少于四个,那么     列出的其他字体文件将支持没有相关字体文件的样式。

     

第一个系列也是默认字体,用于处理未指定的字体请求     特定的字体名称。

     

系统字体未处理的任何字形都会导致搜索后备字体。     默认的回退字体在文件/system/etc/fallback_fonts.xml中指定     是一个可选文件,可供供应商提供,以指定要使用的其他后备字体     在/vendor/etc/fallback_fonts.xml。

如果您解析fonts.xml文件,您可以找到哪个字体系列使用哪种字体(请参阅here):

╔════╦════════════════════════════╦═════════════════════════════╗
║    ║ 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              ║
╚════╩════════════════════════════╩═════════════════════════════╝