Android 上的默认字体设置

2023-12-27

谁能告诉我大多数 Android 设备上的捆绑字体是什么,特别是网页?

就像Windows 有其捆绑的字体 http://www.microsoft.com/typography/fonts/product.aspx?pid=161 or Mac 字体列表 http://en.wikipedia.org/wiki/List_of_typefaces_included_with_Mac_OS_X,大多数 Android 手机和平板电脑附带的字体是什么?谁能指出网络上的列表吗?

我正在制作网页,并希望将 CSS 设置为从使用较新的字体优雅地降级为普通的“sans-serif”和“serif”字体系列。谢谢。


扩展于格斯特莫的回答 https://stackoverflow.com/a/16718523/239657:

系统字体.xml https://github.com/android/platform_frameworks_base/blob/master/data/fonts/system_fonts.xml定义从字体系列到实际字体文件的映射。那么让我们尝试一下这些:

<div style="font-family: sans-serif; font-style: normal">Regular</div>
<div style="font-family: sans-serif; font-style: italic">Italic</div>
<div style="font-family: sans-serif; font-weight: bold">Bold</div>
<div style="font-family: sans-serif; font-weight: bold; font-style: italic">Bold-italic</div>

<div style="font-family: sans-serif-light; font-style: normal">Light</div>
<div style="font-family: sans-serif-light; font-style: italic">Light-italic</div>

<div style="font-family: sans-serif-thin; font-style: normal">Thin</div>
<div style="font-family: sans-serif-thin; font-style: italic">Thin-italic</div>

<div style="font-family: sans-serif-condensed; font-style: normal">Condensed regular</div>
<div style="font-family: sans-serif-condensed; font-style: italic">Condensed italic</div>
<div style="font-family: sans-serif-condensed; font-weight: bold">Condensed bold</div>
<div style="font-family: sans-serif-condensed; font-weight: bold; font-style: italic">Condensed bold-italic</div>

<div style="font-family: serif; font-style: normal">Serif Regular</div>
<div style="font-family: serif; font-style: italic">Serif Italic</div>
<div style="font-family: serif; font-weight: bold">Serif Bold</div>
<div style="font-family: serif; font-weight: bold; font-style: italic">Serif Bold-italic</div>

<!-- "Droid Sans" actually gives you Roboto. -->
<div style="font-family: &quot;Droid Sans&quot;; font-style: normal">Droid Sans Regular</div>
<div style="font-family: &quot;Droid Sans&quot;; font-weight: bold">Droid Sans Bold</div>

<div style="font-family: monospace; font-style: normal">Monospace Regular</div>

http://jsfiddle.net/9z3tD/4/ http://jsfiddle.net/9z3tD/4/ => screenshot on 4.2 (tested on android 4.2)

编辑:屏幕截图中的“Droid Sans”显然是 Roboto。 配置支持它,但事实证明底层文件是一个符号链接 https://github.com/android/platform_frameworks_base/blob/0d9c922c9614147d1277cb36cfb7296774415d15/data/fonts/Android.mk#L38-39: DroidSans.ttf -> Roboto-Regular.ttf, DroidSans-Bold.ttf -> Roboto-Bold.ttf

编辑:我是否引用姓氏似乎并不重要(http://jsfiddle.net/9z3tD/9/ http://jsfiddle.net/9z3tD/9/呈现相同)。 CSS 区分通用关键字,例如serif并引用"serif"它指的是一种名称恰好为“serif”的字体;但 xml 配置没有区别,所以我guess在 android 中,任一语法都引用名称为“serif”的字体。但有may如果您创建自定义 WebView 并将其配置为将通用关键字映射到其他字体(setSerifFontFamily() https://developer.android.com/reference/android/webkit/WebSettings.html#setSerifFontFamily(java.lang.String)和朋友)。

然后还有Fallback_fonts.xml https://github.com/android/platform_frameworks_base/blob/master/data/fonts/fallback_fonts.xml。这些没有名字;例如你不能说font-family: "Droid Sans Fallback".
但所有这些都应该针对其他字体中每个缺失的字形进行尝试。据推测,人们甚至可以使用选择一个子集font-variant of "elegant" or "compact"并通过设置文本lang="ja"?
然而,我根本没有看到 Droid Sans Fallback 被使用,所以也许 Fallbacks 在 WebKit 中不起作用:-(


免责声明:以上内容适用于使用原生浏览器和/或 Chrome 的原生 Android。我believe它也适用于 WebView(使用默认配置)但尚未测试。

理论上制造商可以使用其他字体,例如我听说三星会这样做。在实践中BrowserStack 所有 Android 设备上的屏幕截图 http://www.browserstack.com/screenshots/b566a549e79c3226f3f8ac94f596c11680f8a6db所有的——包括三星——在我未经训练的眼睛看来都是 Roboto 或 Droid,区别只是 Android 版本...... 然而这里是Galaxy S3 被发现没有锯齿Georgia to serif https://github.com/zachleat/font-family-reunion/issues/20#issuecomment-83639316 so 某物不同。

Firefox是浏览器以不同方式做事的一个很好的例子——他们切换到Open Sans 和 Charis SIL Compact https://blog.mozilla.org/ux/2013/03/improved-type-on-firefox-for-android/, then 将 Open Sans 替换为 Clear Sans https://bugzilla.mozilla.org/show_bug.cgi?id=877203.
完整的配置位于libpref/init/all.js https://hg.mozilla.org/mozilla-central/file/840cfd5bc971/modules/libpref/init/all.js#l3651并且是依赖于语言的。
据我所知,Firefox 忽略了 system_fonts.xml 的别名,例如Georgia结果是无字体。
OTOH,旧版本(测试 30、34)允许您通过名称引用系统字体,甚至是 Droid Sans Fallback http://app.crossbrowsertesting.com/public/i866dfd0fa0b9da1/livetests/2829137/snapshots/z52e17c6de3d96d99b2f但是这个不适用于 FF 36、37 http://app.crossbrowsertesting.com/public/i866dfd0fa0b9da1/livetests/2829146/snapshots/zfd0f4c5ca06a7138a26(这 2 个结果适用于http://codepen.io/cben/pen/VYgPEE http://codepen.io/cben/pen/VYgPEE,使用 Adob​​eBlank 意味着当您看到字符时,就使用了该字体)。


也可以看看相关答案 https://stackoverflow.com/a/19692168/239657关于应用程序可用的字体。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android 上的默认字体设置 的相关文章

随机推荐