2

我在我的 Codename One 应用程序中使用不同的字体。如果我包含并使用来自Google 字体的 Roboto-Bold.ttf 或 Oswald字体或来自 dafont.com 的 Keep Calm Medium,则文本将显示在 Android 和 Codename One Simulator 上(如在此 SO 问题上报告的那样),但不在 iOS 上(既不在设备也不在 XCode 设备上),尽管字体被打包在由 Codename One 生成的 .ipa 中。

我尝试使用 style = PLAIN 或 BOLD 获得相同的结果。

我用了font = Font.createTrueTypeFont(fontName, fontFilename ).derive(fontSize, style);

为什么有些字体有效而有些字体无效?在编译之前有什么方法可以知道哪些字体更有可能在 iOS 上工作?

4

1 回答 1

2

iOS 和 Android 使用非常不同的方法来处理字体,我们试图用一种简单的方法来简化它们。

如果您在设计器中使用 UIID 定义字体,我们可以为您隐藏大部分复杂性,但是当您动态加载字体时,您会接触到其中的一些。

Android 只是加载字体文件,以便使用该文件,这应该像模拟器一样轻松工作。iOS 需要安装字体,然后按字体名称加载(这不是文件名,也不是很直观)。这个堆栈溢出问题讨论了在 Mac 上获取字体名称的方法:如何从 otf 或 ttf 文件中获取字体名称?

于 2016-07-08T05:16:17.743 回答