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

Jar*_*ows 47 fonts android font-family roboto

从API 16开始,Jellybean Roboto作为可用的字体系列推出.在这里看看Android 16中的"新" .

指定android:fontFamily="sans-serif"一个(在的Roboto API 16+)TextView默认fontFamilyTextView

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
Run Code Online (Sandbox Code Playgroud)

相当于

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:fontFamily="sans-serif" />
Run Code Online (Sandbox Code Playgroud)

来自Material Design排版网站:

"Roboto和Noto是Android和Chrome上的标准字体."

来自Wiki,

"Roboto是一款由Google开发的无衬线字体系列,作为其移动操作系统Android的系统字体."

我没有在文档中看到fontFamilyAndroid 的默认设置.见参考文献:

Jar*_*ler 56

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语言标签,包括脚本,然后只是语言,最后是顺序(包含字形的第一个字体).

外观顺序也是重量匹配的决胜局.这就是为什么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文件,你可以找到哪个字体系列使用哪种字体(见这里):

?????????????????????????????????????????????????????????????????
?    ? 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              ?
?????????????????????????????????????????????????????????????????
Run Code Online (Sandbox Code Playgroud)