Java me LWUIT中的阿拉伯语单词问题

Java me LWUIT中的阿拉伯语单词问题,java-me,lwuit,right-to-left,Java Me,Lwuit,Right To Left,我已经使用LWUIT创建了一个gui,它使用阿拉伯语单词(因此它是从右到左的) 它适用于某些型号(例如索尼爱立信T700或Elm)。但在其他一些型号(如索尼爱立信w800)上,文字显示不正确:字母是分开的,从左到右依次显示 我完全不知道原因 我找到了这条线索: 这篇文章由LWUIT开发者之一ShaiAlmog回答 因此,我在代码中添加了以下行: list.getStyle().setFont(Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_

我已经使用LWUIT创建了一个gui,它使用阿拉伯语单词(因此它是从右到左的)

它适用于某些型号(例如索尼爱立信T700或Elm)。但在其他一些型号(如索尼爱立信w800)上,文字显示不正确:字母是分开的,从左到右依次显示

我完全不知道原因

我找到了这条线索:

这篇文章由LWUIT开发者之一ShaiAlmog回答

因此,我在代码中添加了以下行:

list.getStyle().setFont(Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));
但这并不能解决问题

1-Shai已回答应使用系统字体。为了设置系统字体,我的代码正确吗

2-还有其他线索吗

我已经用LWUIT 1.5和1.4测试了我的应用程序,关于这个问题,两者都是相同的

有人能帮我摆脱这一切吗


提前感谢您

AFAIK一些索尼爱立信手机在显示阿拉伯语字体时出现问题。一些索尼爱立信手机在显示阿拉伯语字体时出现问题,这将是一件非常麻烦的事情。它将是

好的,我搜索了这个问题,现在我有话要说:
当我们在旧的SonyEricsson模型上使用LWUIT来显示阿拉伯语文本时,似乎有一个问题。这个问题不会出现在较新的SE模型上,当您使用标准的jme或j2me波兰语言时,也不会出现这个问题。(正如你在我原来的帖子中看到的,w800有问题,而T700没有。因此,在2005年到2008年之间的某个时候,问题得到了解决)。
系统字体存在此问题,您不能使用位图字体,因为LWUIT不支持阿拉伯语单词的位图字体。(见此:)

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

要解决第一个问题,您应该自己重塑字符串,我 试图搜索一些类似的代码,这可能会对您有所帮助

您应该根据每个字符的位置将每个字符映射到正确的标志符号 单词中的位置,以及字符周围的字符

这可能会帮助您:

然后,镜像单词以最终解决问题

最后,添加LWUIT的fix to drawString()方法。 最后一点,这不值得头痛。这些手机 有这个问题的是非常旧的手机。我想你可以跳过 支持他们。我们已经停止支持他们了


我接受了他的最后建议,所以我最终没有解决问题,我只是留下了它:-)好的,我搜索了这个问题,现在我有话要说:
当我们在旧的SonyEricsson模型上使用LWUIT来显示阿拉伯语文本时,似乎有一个问题。这个问题不会出现在较新的SE模型上,当您使用标准的jme或j2me波兰语言时,也不会出现这个问题。(正如你在我原来的帖子中看到的,w800有问题,而T700没有。因此,在2005年到2008年之间的某个时候,问题得到了解决)。
系统字体存在此问题,您不能使用位图字体,因为LWUIT不支持阿拉伯语单词的位图字体。(见此:)

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

要解决第一个问题,您应该自己重塑字符串,我 试图搜索一些类似的代码,这可能会对您有所帮助

您应该根据每个字符的位置将每个字符映射到正确的标志符号 单词中的位置,以及字符周围的字符

这可能会帮助您:

然后,镜像单词以最终解决问题

最后,添加LWUIT的fix to drawString()方法。 最后一点,这不值得头痛。这些手机 有这个问题的是非常旧的手机。我想你可以跳过 支持他们。我们已经停止支持他们了


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

谢谢你的链接。但我有一些应用程序即使在那些旧的SE手机上也能很好地工作。我检查了他们的jar文件。其中一些有.bmf文件,似乎与字体有关。你能猜出他们在干什么吗?那是位图文件的。你在使用位图吗?我没有创建这些应用程序,我只是有它们的一个副本。我对它们的工作原理一无所知。你知道他们是如何使用这些文件的吗?你正在使用系统字体作为列表。所以没有问题。可能是索尼爱立信的问题。你能给我一些提示我如何使用这些文件创建和使用位图字体吗?谢谢你的链接。但我有一些应用程序即使在那些旧的SE手机上也能很好地工作。我检查了他们的jar文件。其中一些有.bmf文件,似乎与字体有关。你能猜出他们在干什么吗?那是位图文件的。你在使用位图吗?我没有创建这些应用程序,我只是有它们的一个副本。我对它们的工作原理一无所知。你知道他们是如何使用这些文件的吗?你正在使用系统字体作为列表。所以没有问题。sony ericsson上可能存在问题。您能给我一些提示,我如何使用这些文件创建和使用位图字体吗?Polish遇到了完全相同的问题,因为这是SE drawString()方法实现中的一个错误。LCDUI组件没有这个问题,因为索尼爱立信错误地修复了这个问题(仅在高级API中,而不是在低级API中)。正如您所说,这只是旧设备中的一个bug。Polish也面临着完全相同的问题,因为这是SE drawString()方法实现中的一个bug。LCDUI组件没有这个问题,因为索尼爱立信错误地修复了这个问题(仅在高级API中,而不是在低级API中)。正如你所说,这只是旧设备的一个缺陷。