Android 中的 CTL(复杂文本语言)支持
我正在尝试为亚洲语言开发 Android IME(需要复杂的渲染,例如更改字形形式、重新排序字符顺序等)。在PC中,使用GTK、Pango、Graphite就足够了。在 Android 中,如何解决复杂文本语言的 Unicode 渲染问题。
提前致谢
I am trying to develop Android IME for Asia language (require complicated rendering such as changing glyph forms, reordering character order, etc). In PC, the use of GTK, Pango, Graphite is sufficient. In Android how can I solve rendering of Unicode for Complex Text Language.
Thanks in advance
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该使用 Android 中提供的 Harfbuzz 堆栈。如果您查看 PC 中的 Pango,您会发现有一个名为 Harfbuzz 的整形器组件。 Android 也应该存在同样的情况。通过此堆栈传递任何亚洲语言即可完成工作(更改字形、重新排序等)
You should be using the Harfbuzz stack provided within the Android. If you look within Pango in PC, there is a shaper component called Harfbuzz. Same should exist for Android. Passing any asian language through this stack get the job done (changing glyphs, reordering etc. )
如果你会使用NDK,你就可以一起使用harfbuzz和freetype。没有任何依赖。
否则,您可以坚持使用 Canvas 类提供的 Android drawText 方法。
If you can use NDK, you can use harfbuzz and freetype together. without any dependencies.
Otherwise you can stick to the Android drawText method which is provided by Canvas class.