从 API 16 开始,Jellybean Roboto 被引入作为可用的字体系列。了解 Android 16 中的“新功能”here https://developer.android.com/about/versions/android-4.1.html#Fonts.
指定android:fontFamily="sans-serif"
(API 16+ 中的 Roboto)TextView
默认值fontFamily
of the TextView
?
Is
<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" />
?
From 材料设计排版网站 https://material.google.com/style/typography.html#:
“Roboto 和 Noto 是 Android 和 Chrome 上的标准字体。”
From Wiki https://en.wikipedia.org/wiki/Roboto,
“Roboto 是 Google 开发的无衬线字体家族
其移动操作系统 Android 的系统字体。”
我在文档中没有看到默认值是什么fontFamily
Android 的是。参见参考资料:
- https://developer.android.com/reference/android/R.attr.html#fontFamily https://developer.android.com/reference/android/R.attr.html#fontFamily
- android:fontFamily 的有效值及其映射到什么? https://stackoverflow.com/questions/19691530/valid-values-for-androidfontfamily-and-what-they-map-to
- https://developer.android.com/about/versions/android-4.1.html#Fonts https://developer.android.com/about/versions/android-4.1.html#Fonts
- http://alvinalexander.com/photos/android-roboto-fonts-examples http://alvinalexander.com/photos/android-roboto-fonts-examples
d.android.com 上没有有关字体系列名称的文档。但是,如果您查看 AOSP,会发现默认字体加载在android.graphics.*
. The 字体列表解析器 https://github.com/android/platform_frameworks_base/blob/master/graphics/java/android/graphics/FontListParser.java从加载默认字体/system/etc/fonts.xml
(安卓 5.0+)或/system/etc/system_fonts.xml
(安卓4.1)。默认字体加载在字体#init https://github.com/android/platform_frameworks_base/blob/master/graphics/java/android/graphics/Typeface.java.
这两个 XML 文件有一些文档。第一个字体是默认字体。您可以从设备中提取 /system/etc/fonts.xml。设备制造商或自定义 ROM 可能会更改默认系统字体。
字体.xml(API 21+)
注意:这是系统字体配置的较新 (L) 版本,
支持更丰富的权重选择。有些应用程序会期望较旧的
版本,所以请保持system_fonts.xml和fallback_fonts.xml同步
进行任何更改,即使框架只会读取此文件。
所有没有名称的字体都会添加到默认列表中。字体已选择
基于匹配:完整的 BCP-47 语言标签,包括脚本,然后只是
语言,最后是顺序(包含字形的第一个字体)。
出场顺序也是重量匹配的决定因素。这是
Roboto 的 900 个权重领先于 700 个权重的原因 - 我们
当需要 800 重量时更喜欢前者。由于粗体跨度
有效地为权重添加 300,这确保 900 是粗体
搭配500配重,保证足够的对比度。
系统字体.xml(API 16-20)
系统字体
此文件列出了所有支持的字形默认使用的字体系列。
每个条目由一个家族、该家族支持的各种名称组成,以及
最多四个字体文件。字体文件按照它们所使用的样式的顺序列出
支持:常规、粗体、斜体和粗斜体。如果列出的样式少于四种,则
列出的其他字体文件将支持没有关联字体文件的样式。
第一个家族也是默认字体,处理未指定的字体请求
具体字体名称。
系统字体未处理的任何字形都将导致搜索后备字体。
默认后备字体在文件 /system/etc/fallback_fonts.xml 中指定,并且
是一个可选文件,可由供应商提供以指定要使用的其他后备字体
在 /vendor/etc/fallback_fonts.xml 中。
如果您解析 fonts.xml 文件,您可以找到哪个字体系列使用哪种字体(请参阅here https://stackoverflow.com/a/29533686/1048340):
╔════╦════════════════════════════╦═════════════════════════════╗
║ ║ 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 ║
╚════╩════════════════════════════╩═════════════════════════════╝
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)