Проблема арабских слов в LWUIT на некоторых моделях - PullRequest
1 голос
/ 27 сентября 2011

Я создал графический интерфейс, используя LWUIT, который использует арабские слова (и так справа налево)

Отлично работает на некоторых моделях (например, Sony Ericsson T700 или Elm). Но на некоторых других моделях (например, Sony Ericsson w800) слова отображаются неправильно: буквы разделяются и отображаются одна за другой слева направо.

Я не имею ни малейшего понятия о причине.

Я нашел эту тему:
LWUIT: проблема с отображением арабских слов?

На этот пост отвечает Shai Almog, один из разработчиков LWUIT.

Итак, я добавил строку ниже к своему коду:

list.getStyle().setFont(Font.createSystemFont(Font.FACE_SYSTEM, Font.STYLE_PLAIN, Font.SIZE_MEDIUM));

Но это не решает проблему.

1- Шаи ответил, что следует использовать системные шрифты. Мой код правильный, чтобы установить системный шрифт?

2 - есть еще какие-нибудь подсказки?

Я протестировал свое приложение с LWUIT 1.5 и 1.4, и оба они одинаковы в отношении этой проблемы.

Кто-нибудь может мне помочь из этого?

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 27 сентября 2011

AFAIK Некоторые мобильные телефоны Sony Ericsson, имеющие проблемы с отображением арабского шрифта. На этом форуме будет обсуждаться .

0 голосов
/ 28 сентября 2011

ОК, я искал проблему, и теперь у меня есть что сказать:
Кажется, есть проблема, когда мы используем LWUIT на старых моделях SonyEricsson для показа арабских текстов.Проблема не обнаруживается на более новых моделях SE, и у вас не будет этой проблемы, когда вы используете стандартную полировку jme или j2me.(Как вы видите в моем первоначальном посте, у w800 есть проблема, а у T700 нет. Поэтому где-то между 2005 и 2008 годами проблема решена).
Системные шрифты имеют эту проблему, и вы не можете использовать растровые шрифты, так как LWUIT нене поддерживает растровые шрифты для арабских слов.(см .: LWUIT: проблема с отображением арабских слов? )

Как ее решить :
Друг в сети подсказал мне это решение:

Чтобы решить первую проблему, вы должны изменить форму строки самостоятельно, я попытался найти какой-то похожий код, это может помочь вам http://code.google.com/p/glyph-util/source/browse/trunk/src/com/ahmadiv/dari/DariGlyphUtils.java

Вы должны сопоставить каждый символ сисправьте глиф в соответствии с его расположением в слове и символами, окружающими символы.

Это может помочь вам: http://unicode.org/charts/PDF/UFE70.pdf

Затем отразите слова, чтобы окончательно решить проблему.

Наконец, добавьте исправление в метод drawString () LWUIT.Просто, последнее замечание .. это не стоит головной боли.Телефоны, которые имеют эту проблему, являются очень старыми телефонами.Я думаю, что вы могли бы пропустить их поддержку.Мы уже прекращаем их поддерживать.

Я принял его последний совет, поэтому не решил наконец проблему, просто оставил ее: -)

...