当前位置: 首页 > 知识库问答 >
问题:

Android系统默认的字体家族是什么?

葛志国
2023-03-14

从API16开始,Jellybean Roboto作为可用的字体家族被引入。看看Android16的“新”在这里。

textview上指定android:fontfamily=“sans-serif”(API 16+中的Roboto)是textview的默认fontfamily吗?

<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上的标准字体。”

    null

共有1个答案

濮阳
2023-03-14

在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与任何更改html" target="_blank">同步,即使framework只会读取该文件。

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

出场顺序也是体重搭配的抢七盘。这就是为什么Roboto的900重量在700重量之前的原因--当请求800重量时,我们更喜欢前者。由于粗体跨距有效地将300增加到权重,这确保了900是粗体与500权重配对的,从而确保了足够的对比度。

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

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

系统字体未处理的任何字形都将导致对后备字体的搜索。缺省的后备字体在文件/system/etc/fallback_fonts.xml中指定,供应商可以提供一个可选文件,指定在/vendor/etc/fallback_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              ║
╚════╩════════════════════════════╩═════════════════════════════╝
 类似资料:
  • 有了Android(三星、LG、HTC)的一些风格,似乎可以设置默认系统字体而无需根。我没有这些设备可以测试(我有一台旧的联想平板电脑),但我想知道以下几点: 字体。默认方法返回这些设备上自定义字体的字体,或者总是返回Roboto上的信息? 如果它返回关于自定义字体的信息,我如何以编程方式获得自定义字体的字体名称(字符串)? 如果字体。默认是一个死胡同,还有其他方法来获得默认的系统字体名称吗?也许

  • 我在Windows上使用系统字体作为。不支持CJK字符,但不是默认为这些字符(例如

  • 我有一个文本视图,我想风格。我知道无衬线字体家族使用机器人字体。 对于,我只得到以下建议: 衬线 serif-monspace 无衬线 无衬线压缩 sans-serif小写 如何使用/system/etc/font.xml中声明的其余别名?

  • 我在此答案中找到了默认字体的列表,但我无法找到用于显示表情符号的字体(如果有的话)。

  • 我打算更改谷歌Chrome的语言,指定默认(后退)字体为Noto Sans cjk。但事实证明我的Chrome不支持。我的Windows8上安装了整个系列的Noto sans+serif。 我尝试了一些字体使用一个空的html,许多字体工作,但仍然有一些不工作。 FONT-FAMILY: null 所有截图都是在一个全新的Chrome配置文件中拍摄的。Chrome可以识别字体,但除了使用定义的字体

  • 如果我没有指定要使用的字体,我想知道Android操作系统在我的应用程序中使用的默认字体是什么。 这篇文章没有帮助 提前感谢您的帮助