某些型号的LWUIT中的阿拉伯语单词问题

时间:2011-09-27 05:28:13

标签: java-me lwuit right-to-left

我使用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测试了我的应用程序,这两个问题都是相同的。

有人可以帮我解决这个问题吗?

提前谢谢

2 个答案:

答案 0 :(得分:1)

AFAIK一些索尼爱立信手机在显示阿拉伯字体时出现问题。它将是discussed in this forum.

答案 1 :(得分:0)

好的,我搜索了这个问题,现在我有话要说:
当我们在旧的SonyEricsson模型上使用LWUIT来显示阿拉伯文本时,似乎存在问题。问题没有出现在较新的SE型号上,当您使用标准的jme或j2me抛光时,您不会遇到此问题。 (正如你在我原来的帖子中看到的那样,w800有问题,但是T700没有。所以在2005年到2008年之间,问题就解决了。)
系统字体有这个问题,你不能使用位图字体,因为LWUIT不支持阿拉伯语单词的位图字体。 (见:LWUIT : issue in showing arabic words ?

如何解决
网上的一位朋友引导我找到这个解决方案:

  

要解决第一个问题,你应该自己重塑一下这个字符串,我   试图搜索一些类似的代码,这可能对你有所帮助   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()方法。   只是,最后注意......这不值得头疼。手机那个   有这个问题是非常古老的手机。我想你可以跳过   支持他们。我们已经停止支持他们了。

我接受了他的最终建议,所以我最后没有解决问题,我只是离开了: - )

相关问题