【发布时间】:2021-11-28 11:27:07
【问题描述】:
我正在尝试为我的 Firemonkey 应用程序实现一个自定义字体系列(多个 .otf 文件,用于不同的权重,例如重、轻、常规、超轻……),它将同时部署在 Android 和 iOS 上。
在 iOS 上实现字体系列非常简单,我所要做的就是将它们包含在 info.plist 文件中。将字体应用于标签时,在“字体”>“系列”下,我只需输入“字体名称”即可应用。请记住,没有实际的“字体名称”文件,只有“字体名称 Heavy”和其他权重。
这里有一个额外的问题,我如何在 FMX 中使用字体粗细?我没有找到任何设置字体粗细的属性。
但是,在 Android 中做同样的事情时,结果却完全不同。我在部署中包含字体,输入“字体名称”根本不应用它,但是如果我输入“字体名称 Ultralight”,那么具有该重量的字体就会被应用(在 iOS 上,添加“Ultralight”没有效果)。 更糟糕的是,为字体添加样式(如斜体和粗体)根本不适用于 Android,而它们却适用于 iOS。
为什么这两者的行为如此不同,如何克服这些差异,使它们都显示相同的东西?
【问题讨论】:
-
在 iOS 上,使用存储在文件中的实际字体名称。在 Android 上,它是文件名减去扩展名。确保文件名与您希望使用的字体名称匹配,并且在两者上都一样
-
@DaveNottage 在经历了类似的问题后,我得出以下结论:1. Delphi FMX 不支持“Regular”和“Bold”以外的字体粗细,2. 在 Android 上大量部署自定义字体与 iOS 不同。我很惊讶还没有人解决这个问题,所以我会尽力解决它并自己回答这个问题。
标签: android ios delphi firemonkey delphi-11-alexandria