- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
在我们的应用程序中,我们使用 Roboto 和 Roboto Bold。但是,在某些版本的 Android(似乎是 4.0 到 4.1)中,我们在使用导入版本的 Roboto(即使用 Typeface.createFromAsset()
)时遇到文本渲染问题,这些问题在简单时不会出现使用内置版本的 Roboto(即 Typeface.DEFAULT
)。
我知道 Roboto 和 Roboto Bold 是在 Android 4.0 中引入的,但我似乎找不到任何东西来保证这些字体在制造商修改(例如 Touchwiz、Sense)的情况下都可用。如果保证它们存在,我们可以只使用版本检查来仅对低于 Android 4.0 的设备使用自定义导入。
最佳答案
编辑:通过一些实验,尤其是在允许用户更改字体的 Galaxy S3 上,我发现了以下内容:
Typeface.create(Typeface.SANS_SERIF, Typeface.NORMAL)
将返回自定义字体,而不是系统默认的无衬线字体(即 Roboto)Typeface.create("sans-serif", Typeface.NORMAL)
(或 BOLD),无论用户的字体自定义如何,它都会返回 Roboto。从下面的列表中,您实际上可以使用上面的“helvetica”、“tahoma”、“verdana”或“arial”来代替“sans-serif”,结果相同。我找到了一个名为 system_fonts.xml
的文件,它似乎证实了 Roboto 将用于 SDK 目录下对 Typeface.SANS_SERIF
的任何引用:
platforms > android-14 > data > fonts
<!--
System Fonts
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.
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.
-->
<familyset>
<family>
<nameset>
<name>sans-serif</name>
<name>arial</name>
<name>helvetica</name>
<name>tahoma</name>
<name>verdana</name>
</nameset>
<fileset>
<file>Roboto-Regular.ttf</file>
<file>Roboto-Bold.ttf</file>
<file>Roboto-Italic.ttf</file>
<file>Roboto-BoldItalic.ttf</file>
</fileset>
</family>
由于供应商字体必须放在 fallback_fonts.xml
中,系统字体总是优先的,列出的第一个字体是 Roboto,别名为 sans-serif、aria、helvetica、tahoma或 verdana,除非我另有发现,否则我认为可以安全地假设 Roboto 将是调用 Typeface.create(Typeface.SANS_SERIF, Typeface.NORMAL)
时返回的字体。
我现在仍将保留此问题,希望得到明确的答案,因为我不确定是否允许 OEM 修改 system_fonts.xml。如果是,那么这根本就没有帮助。
关于android - Roboto 和 Roboto Bold 是否保证在 4.0+ 上可用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15120943/
我正在通过 excel-vba 构建图表。我正在使用以下行之一将我的 X 轴字体设置为粗体: Activechart.Axes(xlCategory).TickLabels.Font.F
我想了解为什么浏览器会这样。 我在 html 文档中有以下文本。 This is Sample Text. Text after empty bold tag. 如果我在浏览器中查看此文档,则
我正在尝试获取一大块纯文本并将其部分转换为 html 标记。我不需要一个完整的富编辑器,只需要这几个标签: **bold** __underline__ ~~italics~~ --strike--
我在网站上使用网络字体。对于某些标题(h1、h2 等),我使用粗体变体(并将 font-weight 设置为正常),因为它们看起来比使用常规变体并使用默认的粗体字重保留 h 标签要好得多。有必要指定
我正在尝试将按钮文本的粗细更改为粗体(在某些情况下)。为此,我在 bootstrap.css 中创建了一个新类,基本上是带有 font-weight: bold 的 btn 类的副本——我将该类命名为
我有填充到电子邮件正文中的文本字段。问题 - 如何让名字和姓氏以粗体显示(在发送的电子邮件中)? 这是我的电子邮件代码 // Send Email ----------------------
我正在使用相同的宏格式化两个不同的报告。两个电子表格之间的性能截然不同。宏在第一个报告上立即起作用,而在另一个报告上大约需要 10 秒。我已将其范围缩小到使单元格 A1 加粗的语句。当省略粗体语句时,
我觉得自己是个菜鸟,但我似乎找不到任何关于这个的东西...... 我有一个控件,我基本上是在尝试在粗体和非粗体之间切换字体样式。这应该很简单...... 但是,您无法访问 Control.Font.B
过去,如果我想在同一文本上使用粗体和斜体,我会按名称选择字体,如下所示: font = [UIFont fontWithName:@"HelveticaNeue-BoldItalic" size:si
我遇到了需要覆盖 font-weight 属性的情况。然而,即使我使用 !important 来增加它的优先级,它仍然会被其他样式覆盖。正如您在下面的示例中看到的,我希望 hello world 加粗
这个问题在这里已经有了答案: Find a string of text in an element and wrap some span tags round it (6 个答案) 关闭 6 年
使用这个 CSS: body > h1.title { display: block; font-size: 2em; font-weight: bold; margin: 0.67e
我用的是这样的:screen.addstr(text, color_pair(1) | A_BOLD),但它似乎不起作用..但是,A_REVERSE 和所有其他属性都有效! 事实上,我正在尝试用白色打
我正在使用 Popup python-2.7 中的小部件和 kivy 。有人能帮我吗? 1.如何使标签加粗? (例如 text: "make label bold") 2. 如何改变标题的颜色? (例
有没有办法以编程方式查明用户是否在“设置”应用程序的“常规”->“辅助功能”下打开了“粗体文本”? 最佳答案 从 iOS 8 开始,可以使用 UIAccessibilityIsBoldTextEnab
因为 PHP-Excel 已被弃用,所以 PHP-Spreadsheet 是在 PHP 中制作 Excel 的新选项。文档不是最好的,并且在 Stackoverflow 上关于 PHP-Spreads
我正在尝试制作一个简单的所见即所得编辑器,但在将文本加粗时遇到问题。我可以使用 document.execCommand("underline", false, null); 为文本添加下划线并将文本
我正在构建一个带有粗体功能的简单 JavaScript 文本编辑器。我正在使用execCommand('bold')为了这。对于工具栏中的粗体图标,我必须检查我现在是否正在写粗体。我正在考虑一个 bo
我必须在尚未定义 .Font 属性但从表单继承字体(名称、大小、样式)的标签上设置 .Font.Bold = True。为此,我从表单的设计器文件中删除了她的 .Font 属性。 现在我需要将这个标签
我的文本框中有一个字符串,并且只希望其中一个单词以粗体显示。有没有办法在代码中做到这一点而不附加文本?有点像在 xml/html 中如何完成...下划线也可以吗? 最好不要使用 xml 或 html
我是一名优秀的程序员,十分优秀!