5

我有几种不同风格的字体,比如说:“MyFont_default.otf”、“MyFont_italic.otf”、“MyFont_bold.otf”

通常,我会像这样设置 TextView 的字体:

Typeface tf=Typeface.createFromAsset(context.getAssets(), "MyFont_italic.otf");
textView.setTypeface(tf);

我的问题是:是否可以将所有这些字体组合成一种字体,比如“MyFont”,并根据 XML 布局文件中定义的 TextView 样式(斜体、粗体),以适当的方式显示 TextView字体?

4

2 回答 2

2

我没有适当的声誉来发表评论,但我可以确认,这种方法是有效的。使用 FontForge(可用于 Windows 的二进制文件):

  1. 使用 FontForge(Regular、Bold、Italic)打开多个 .otf 文件。
  2. 确保选择显示字体“常规”版本的窗口
  3. 使用该窗口中的 File > Save ttc
  4. 看到确实在保存对话框中列出了其他子字体(粗体,斜体)
  5. 在 Android 中保存并使用这个 ttc 文件

我使用 TextView 中显示的 html 文本对其进行了测试: <b>Test</b> Test <i>Test</i>->“ Test Test Test ”,这在以前的 Android 2.3.7 中不起作用,并且使用此 ttc 字体,所有三个版本的文本都完美显示。

正如我所说,在导出时选择常规字体很重要,因为这是 Android 用作“默认”的字体(我首先从 Bold 版本进行了导出,并且全部为 Bold)。

于 2014-02-12T17:39:08.700 回答
1

使用某种字体编辑器将字体组合成一个文件。许多字体在一个文件中带有多种样式,这就是您在这种情况下所需要的。

于 2012-04-17T13:52:56.237 回答