私はバンガリ語について何も知りません。あなたが言及したフォントが見つかりません。しかし、問題を再現するための代替フォント「Bengali-Progoty.TTF」を取得することができました (残念ながら、これはあなたのものとは少し似ていません)。ここでフォントを取得できます: Bengali-Progoty.TTF。
それらの母音は幅がゼロであるという点で特別であり、それらの原点は左上ではなく右上の点にあるに違いありません。このようにして、母音をその前にある他の文字の上に描くことができます。
lwuit デザイナーがビットマップ フォントを生成するとき、すべての文字 (つまり、Unicode 文字) を大きなビットマップに描画し、現在の文字の幅を計算し、その幅を現在のオフセットに追加して、次の文字を描画します。母音の幅は 0 であるため、母音以外の最後の文字に結合されます。
この問題を解決するには、Unicode フォントに切り替えるか (Bangali には Unicode の場所があります)、現在のフォントに固執してフォント生成プロセスをカスタマイズすることができます。
1EditorFont
lwuit の editor.jar のクラスをオーバーライドする独自のクラスを作成します。
2メソッドをオーバーライドEditorFont#getBitmapFont()
して、すべてのキャラクターを独自に描画します。文字が母音であるかどうかをテストできます。母音の場合は、前にスペースを付けて描画します。
3FontTask
lwuit の editor.jar で提供される Ant タスクをオーバーライドします。
4メソッドをオーバーライドしFontTask#addToResources()
、元のインスタンスの代わりに独自の EditorFont インスタンスを挿入します。
5 LWUITTask クラスをオーバーライドし、オーバーライドされた FontTaskAddXXX
をサポートするメソッドを追加します。
6 ant を使用してリソースを構築し、元のバージョンの代わりに独自のバージョンの LWUITTask と FontTask を使用します。
7母音は通常の文字になったため、他の文字と同じスペースを占有し、他の文字の上に描画できなくなりました。他のキャラクターの上に手動で描画する必要があります。com.sun.lwuit.CustomFont
これらの母音を正しく描画するには、クラスをオーバーライドする必要がある場合があります。
導入された複雑さを考えると、Unicode フォントに切り替えることを強くお勧めします。しかし、私が言ったように、私はバンガリ語について何も知らないし、Unicode フォントを使用するのが適切かどうかもわかりません. 結局のところ、あなたはそれを難しい方法でやらなければならないのかもしれません。
幸運を。