こんにちは、LWUIT でアラビア語を表示する際に問題があります。アラビア語の文字が分離され、逆になっていますが、ノキアでは正常に機能します。この問題を解決するにはどうすればよいですか? ありがとう
1 に答える
ビットマップ フォントでは、アラビア語のグリフ シェーピングは、言語固有の特性のために機能しません。システム フォント (一部の LWUIT のテーマではデフォルトではない) を使用する必要があります。アラビア語のシステム フォントのサポートはデバイス/シミュレーター次第であり、そのすべてが双方向/シェーピングを適切にサポートしているわけではありません。
一部の古い Sony Erricson デバイスや、ローカライズが不十分な Android デバイス (Nexus One など) などの他のデバイスには、適切な双方向サポートがないことに注意してください。これは、ネイティブ ウィジェットが実装ではなく、bidi を実装することを意味しますdrawString
。残念ながら、実行時にこのバグを検出する方法がないため、LWUIT でシームレスに回避することはできません。
唯一の解決策は、drawString コードで双方向アルゴリズムを手動で実行するようなデバイス専用のバージョンを作成することです。これは、これらのデバイスの実装を、drawString メソッドをオーバーライドし、レンダリングされた文字列で双方向アルゴリズムを実行する実装に置き換えることを意味します。LWUIT の双方向アルゴリズムはDisplay
クラスで公開されます。