Android-将多种字体组合成一种字体(字体)

Android-将多种字体组合成一种字体(字体),android,android-layout,fonts,Android,Android Layout,Fonts,我有几种不同风格的字体,比如:“MyFont\u default.otf”、“MyFont\u italic.otf”、“MyFont\u bold.otf” 通常,我会将TextView的字体设置为: Typeface tf=Typeface.createFromAsset(context.getAssets(), "MyFont_italic.otf"); textView.setTypeface(tf); 我的问题是:是否可以将所有这些字体组合成一种字体,比如说“MyFont”,并根据X

我有几种不同风格的字体,比如:“MyFont\u default.otf”、“MyFont\u italic.otf”、“MyFont\u bold.otf”

通常,我会将TextView的字体设置为:

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

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

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

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

  • 使用FontForge(常规、粗体、斜体)打开多个.otf文件
  • 确保选择显示字体“常规”版本的窗口
  • 从该窗口使用文件>保存ttc
  • 请查看“保存”对话框中是否列出了其他子字体(粗体、斜体)
  • 在Android中保存并使用此ttc文件
  • 我用文本视图中显示的html文本对其进行了测试:
    测试测试
    -> “测试”之前在Android2.3.7中不起作用,使用这种ttc字体,三个版本的文本都能完美地显示出来


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

    感谢您的回复。由于时间的限制,我最终使用了不同的字体,因为这是最快的方式。(但不是最优雅的)有这个问题,无法组合字体,但我最终发现它使用了一个简单的自定义TextView来覆盖setTypeface方法。在一个ttc文件中合并两个otf对我来说很有效(在2.3.3和4.4上)。非常感谢。这对我帮助很大!谢谢你抽出时间。应该是公认的答案:你敢肯定这真的有效吗?在我看来,Android似乎只使用常规版本,并将其修改为粗体和斜体风格。