2011-11-11 11 views
1

アプリケーションはLWUITを使用してJ2MEで開発します。このアプリケーションをSamsung Deviceに移植すると、次の問題が発生します。LWUITフォームのメニューバーの高さ

int h = Display.getInstance().getDisplayWidth();

それはサムスンGT S5250のための388を返します。したがって、このディメンションを使用してイメージを描画すると、画面の下部に白い帯が表示されます。 Form.show()と呼ぶと正しく表示され、高さは400なので、この問題を解決するにはどうすればいいですか? FormのサイズがLWUITでどのように計算され、どのように計算されるのかを知りたいMenuBar画面の下部に高さと白い帯が表示されます。

答えて

1

getDisplayHeight()と入力すると、getDisplayWidth()と入力したと思います。

表示されている問題は、Samsungデバイスのバグが原因です。 LWUITはネイティブのタイトル領域を隠すMIDPのフルスクリーンモードを起動しますが、一部のデバイスでは必ずしも直ちに実行されるわけではないため、LWUITはデバイスから誤った情報を取得します。リフレッシュによって通常これが解決され、LWUITが画面に描画するまでにサイズが修正されます。

一般的に、解決策は単純です。イメージを作成するための汎用コードを作成し、画面に描画するときにイメージのサイズが不適切な場合は、その場でイメージを再作成します。これはまた、問題を引き起こす可能性のあるデバイスの回転の問題も解決します。

+0

こんにちは。私はフォームに画像を追加しないで、また、画面の下に白い帯が表示されています。このstrip.iを削除するにはForm.iの背景色を設定してください。canvas.servicesReapint() ;この問題を解決するには何も影響しません。 – Megha

+0

serviceRepaintsを呼び出さないでください。フォームにイメージをどのように追加したかは指定していませんか? callSerially endメソッド内にコードを書く必要があります。これは、LWUITが画面を適切に初期化する時間があることを意味します。コール型コールバックでLWUITを起動するLWUIT 1.5デモをご覧ください。 –