我使用LWUIT创建了一个使用阿拉伯语单词的gui(所以它从右到左)
在某些型号上可以正常使用(例如Sony Ericsson T700或Elm)。但在其他一些型号(例如索尼爱立信W800)上,单词显示不正确:字母分开并从左到右依次显示。
我绝对没有关于其原因的线索。
我找到了这个帖子:
LWUIT : issue in showing arabic words ?
这篇文章由LWUIT开发人员之一Shai Almog回答。
所以我将以下行添加到我的代码中:
list.getStyle().setFont(Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
但它并没有解决问题。
1- Shai回答说应该使用系统字体。我的代码是否正确以设置系统字体?
2-其他任何线索?
我已经使用LWUIT 1.5和1.4测试了我的应用程序,这两个问题都是相同的。
有人可以帮我解决这个问题吗?
提前谢谢
答案 0 :(得分:1)
AFAIK一些索尼爱立信手机在显示阿拉伯字体时出现问题。它将是discussed in this forum.
答案 1 :(得分:0)
如何解决:
网上的一位朋友引导我找到这个解决方案:
要解决第一个问题,你应该自己重塑一下这个字符串,我 试图搜索一些类似的代码,这可能对你有所帮助 http://code.google.com/p/glyph-util/source/browse/trunk/src/com/ahmadiv/dari/DariGlyphUtils.java
您应该根据每个字符将正确的字形映射到正确的字形 单词中的位置,以及字符周围的字符。
这可能会对您有所帮助:http://unicode.org/charts/PDF/UFE70.pdf
然后,镜像这些词语以最终解决问题。
最后,将修复添加到LWUIT的drawString()方法。 只是,最后注意......这不值得头疼。手机那个 有这个问题是非常古老的手机。我想你可以跳过 支持他们。我们已经停止支持他们了。
我接受了他的最终建议,所以我最后没有解决问题,我只是离开了: - )