在Android中支持使用OpenType字体的复杂文本布局

在Android中支持使用OpenType字体的复杂文本布局,第1张

概述我想要什么我想在我的assets文件夹中放入一个OpenType字体,并使用Typeface.createFromAsset在我的Android应用程序中为使用complextextlayout(CTL)的语言呈现Unicode文本.背景我想在traditionalMongolianscript这样做,但对于其他语言,如泰语,阿拉伯语,印度语和许多少数民族

我想要什么

我想在我的assets文件夹中放入一个OpenType字体,并使用Typeface.createFromAsset在我的Android应用程序中为使用complex text layout (CTL)的语言呈现Unicode文本.

背景

我想在traditional Mongolian script这样做,但对于其他语言,如泰语,阿拉伯语,印度语和许多少数民族语言,它是同一个问题(我听说). OpenType font已包含正确显示文本所需的信息.问题是并非所有软件都支持OpenType渲染. Some do,但其他人没有.从我可以收集到的,AndroID不习惯,但也许现在呢?

我的问题

AndroID Lollipop现在已经发布了. AndroID中是否支持OpenType字体?

如果还没有什么容易的话,那么过程是什么?我听说过Pango和Harfbuzz(which claims to work with Android)之类的东西,但我没有找到任何关于如何实现它们的简单说明或教程.我发现的最接近的是Indic text renderer,但它很难理解.

有关StackOverflow的相关问题

这些问题表明对这个主题感兴趣,但在我看来,他们没有得到满意的答复.其中一些也已过时.我想知道是否有当前的解决方案.

> Use OpenType font features in Android
> Display interception and support non-latin or complex scripting language in Andorid
> CTL (Complex Text Language) support in Android(原文如此)
> Indic Language Support for SDK but not PhoneGap
> HarfBuzz getting started
> indic-text-renderer using harfbuzz and freetype

我试过了什么

我编写了自己的渲染引擎来显示传统的蒙古语Unicode文本.但是,如果已经有OpenType字体可用,那么为特定语言编写渲染引擎就是重新发明轮子.此外,它不容易适应其他语言.

解决方法:

如果您想使用Harfbuzz执行此 *** 作,我已经编写了一个使用Harfbuzz实现文本整形器的简单指南:http://www.simon-cozens.org/content/duffers-guide-fontconfig-and-harfbuzz

这应该让你从字体选择到知道应该使用哪些字形以及将它们放在输出中的位置.

总结

以上是内存溢出为你收集整理的在Android中支持使用OpenType字体的复杂文本布局全部内容,希望文章能够帮你解决在Android中支持使用OpenType字体的复杂文本布局所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1101829.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存