Android 中的默认字体系列是什么? [英] What is the default font family in Android?

查看:109
本文介绍了Android 中的默认字体系列是什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

从 API 16 开始,Jellybean Roboto 被引入为可用的字体系列.在此处查看 Android 16 中的新功能".

Starting in API 16, Jellybean Roboto was introduced as available font family to use. See whats "new" in Android 16 here.

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

Specifying android:fontFamily="sans-serif"(Roboto in API 16+) on a TextView the default fontFamily of the TextView?

<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" />

?

来自材料设计排版网站:

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

"Roboto and Noto are the standard typefaces on Android and Chrome."

来自维基

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

"Roboto is a sans-serif typeface family developed by Google as the system font for its mobile operating system Android."

我在文档中没有看到 Android 的默认 fontFamily 是什么.请参阅参考资料:

I do not see in the docs what the default fontFamily of Android is. See references:

推荐答案

d.android.com 上没有关于字体系列名称的文档.但是,如果您查看 AOSP,默认字体会加载到 android.graphics.* 中.FontListParser/system/etc/fonts.xml (Android 5.0+) 或 /system/etc/system_fonts.xml (Android 4.1).默认字体加载在 Typeface#init.

There is no documentation on d.android.com for font family names. However, if you look at AOSP, the default fonts are loaded in android.graphics.*. The FontListParser loads the default fonts from /system/etc/fonts.xml (Android 5.0+) or /system/etc/system_fonts.xml (Android 4.1). The default fonts are loaded in Typeface#init.

这两个 XML 文件都有一些文档.第一种字体是默认字体.您可以从您的设备中提取/system/etc/fonts.xml.设备制造商或自定义 ROM 可能会更改默认系统字体.

The two XML files have some documentation. The first font is the default font. You can pull /system/etc/fonts.xml from your device. A device manufacturer or custom ROM may change the default system fonts.

fonts.xml (API 21+)

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

NOTE: this is the newer (L) version of the system font configuration, supporting richer weight selection. Some apps will expect the older version, so please keep system_fonts.xml and fallback_fonts.xml in sync with any changes, even though framework will only read this file.

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

All fonts withohut names are added to the default list. Fonts are chosen based on a match: full BCP-47 language tag including script, then just language, and finally order (the first font containing the glyph).

出场顺序也是权重匹配的决胜局.这是Roboto 900 重量在 700 重量之前的原因 - 我们当要求 800 重量时,更喜欢前者.由于大胆跨越有效地将 300 添加到权重,这确保 900 是粗体搭配 500 砝码,确保足够的对比度.

Order of appearance is also the tiebreaker for weight matching. This is the reason why the 900 weights of Roboto precede the 700 weights - we prefer the former when an 800 weight is requested. Since bold spans effectively add 300 to the weight, this ensures that 900 is the bold paired with the 500 weight, ensuring adequate contrast.

system_fonts.xml (API 16-20)

system_fonts.xml (API 16-20)

系统字体

该文件列出了所有支持的字形默认使用的字体系列.每个条目都包含一个系列、该系列支持的各种名称,以及最多四个字体文件.字体文件按照它们的样式顺序列出支持:常规、粗体、斜体和粗斜体.如果列出的样式少于四种,则列出的其他字体文件将支持没有关联字体文件的样式.

This file lists the font families that will be used by default for all supported glyphs. Each entry consists of a family, various names that are supported by that family, and up to four font files. The font files are listed in the order of the styles which they support: regular, bold, italic and bold-italic. If less than four styles are listed, then the styles with no associated font file will be supported by the other font files listed.

第一个家族也是默认字体,处理没有指定的字体请求特定的字体名称.

The first family is also the default font, which handles font request that have not specified specific font names.

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

Any glyph that is not handled by the system fonts will cause a search of the fallback fonts. The default fallback fonts are specified in the file /system/etc/fallback_fonts.xml, and there is an optional file which may be supplied by vendors to specify other fallback fonts to use in /vendor/etc/fallback_fonts.xml.

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

If you parse the fonts.xml file, you can find which font family uses which typeface (see 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              ║
╚════╩════════════════════════════╩═════════════════════════════╝

这篇关于Android 中的默认字体系列是什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆