用原生c在android ics中绘制复杂文本
注:我的整个senario仅适用于android版本 我的目标是呈现具有复杂脚本/索引脚本的文本。在ICS中,此功能已添加到WebView(以及其他浏览器)中。如果在浏览器或WebView中呈现任何索引文本,则会正确呈现。但在其他小部件(TextView、EditText)中,它呈现的是断开的 现在,我的目标是重新使用代码在webcore中正确绘制索引文本,并使用该代码在自定义小部件中绘制索引文本 我还在浏览器中使用HTML5画布进行了测试,它可以很好地呈现印度文字。 我已经测试了android的android.graphics.Canvas,但它无法正确呈现印度文字 严重缺乏文档,因此我无法解决如何使用此工具渲染文本 我检查了libwebcore.so的objdump,发现它依赖于lib“skia”“libicu”。所以我假设我可以使用这些库来绘制索引文本用原生c在android ics中绘制复杂文本,android,android-ndk,icu,skia,indic,Android,Android Ndk,Icu,Skia,Indic,注:我的整个senario仅适用于android版本 我的目标是呈现具有复杂脚本/索引脚本的文本。在ICS中,此功能已添加到WebView(以及其他浏览器)中。如果在浏览器或WebView中呈现任何索引文本,则会正确呈现。但在其他小部件(TextView、EditText)中,它呈现的是断开的 现在,我的目标是重新使用代码在webcore中正确绘制索引文本,并使用该代码在自定义小部件中绘制索引文本 我还在浏览器中使用HTML5画布进行了测试,它可以很好地呈现印度文字。 我已经测试了android
有人能建议我如何使用skia和icu绘制印度文字吗?或者有人能指出libwebcore中的特定代码段吗?有两个常用的替代文本堆栈,但都不是通过Android NDK直接公开的。在基础级别,您需要:
作为一个替代堆栈,libicu的各个部分可以替换fribidi、harfbuzz ng和Pango(最后一个部分是几乎没有文档记录的ParagraphLayout类);您仍然需要libfreetype来实际处理字体和光栅化。请注意,libicu的部分内容正在转移到harbuzz ng,因此这些堆栈不是完全不同的;尽管libicu的某些部分非常优秀,并且定期更新,但其他部分则比较模糊。您可能不想发布与库的非公开细节相关的特定于构建的代码。虽然Android供应商/运营商推送更新的速度通常较慢,但当他们推送更新时,他们往往是强制性的。此外,您可能会发现,它不能跨供应商工作。你可以使用webview进行渲染吗?@ChrisStratton使用webview实际上有些过分。这会减慢速度。我想我可以用我的应用程序打包这些库,或者想出一些办法。我现在不想发布/分发,我想先做一些事情。ICU建议使用harfbuzz做harfbuzz做的事情。(icu图书馆)。我不确定这堆东西有什么不清楚的地方——我很好奇你的意思。