我想要什么
我想将 OpenType 字体放在我的资产文件夹中,并用于在我的 Android 应用程序中为使用复杂文本布局 (CTL)Typeface.createFromAsset
的语言呈现 Unicode 文本。
背景
我想为传统的蒙古文字做这个,但对于其他语言,如泰语、阿拉伯语、印度语和许多少数民族语言,这是同样的问题(所以我听说)。OpenType 字体已经包含正确显示文本所需的信息。问题是并非所有软件都支持 OpenType 渲染。有些会,但有些不会。据我所知,Android 过去没有,但现在可能有?
我的问题
Android Lollipop 现已推出。Android 中是否支持 OpenType 字体?
如果仍然没有什么容易的,那么过程是什么?我听说过 Pango 和 Harfbuzz(声称可以与 Android 一起使用)之类的东西,但我还没有找到任何简单的说明或教程来说明如何实现它们。我发现的最接近的东西是Indic text renderer,但它远非易于理解。
StackOverflow 上的相关问题
这些问题表明人们对这个话题很感兴趣,但在我看来,这些问题并没有得到令人满意的回答。其中一些也已过时。我想知道是否有当前的解决方案。
- 在 Android 中使用 OpenType 字体功能
- 在 Andorid 中显示拦截并支持非拉丁语或复杂脚本语言
- Android 中的 CTL(复杂文本语言)支持(原文如此)
- 支持 SDK 但不支持 PhoneGap 的印度语语言
- HarfBuzz 入门
- 使用 harfbuzz 和 freetype 的 indic-text-renderer
我试过的
我编写了自己的渲染引擎来显示传统的蒙古语 Unicode 文本。但是,如果已经有可用的 OpenType 字体,那么为特定语言编写渲染引擎就是在重新发明轮子。此外,它不容易适应其他语言。