В растровых шрифтах формирование арабских глифов не работает из-за уникальных свойств языка.
Вам необходимо использовать системные шрифты (которые не используются по умолчанию в некоторых темах LWUIT), в системных шрифтах поддержка арабского языка зависит от устройства / симулятора, не все из которых поддерживают правильную настройку двунаправленного текста.
Обратите внимание, что некоторые старые устройства Sony Erricson, а также некоторые другие устройства, такие как плохо локализованные устройства Android (например, Nexus One), не имеют надлежащей поддержки двунаправленного текста. Это означает, что их родные виджеты реализуют bidi вместо их drawString
реализации. К сожалению, нет способа обнаружить эту ошибку во время выполнения, поэтому LWUIT не может легко ее обойти!
Единственное решение - создать версию специально для таких устройств, которая вручную выполняет алгоритм двунаправленного текста в коде drawString, это означает замену реализации для этих устройств реализацией, которая просто переопределяет метод drawString и выполняет алгоритм двунаправленного текста при визуализации строки. Биди-алгоритм LWUIT представлен в классе Display
.