2011-11-11 87 views
1

使用LWUIT在J2ME中開發應用程序。當我在三星設備上移植此應用程序時,會產生以下問題。LWUIT表單中的菜單欄高度

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

它爲三星GT S5250返回388。所以當我使用這個尺寸繪製圖像時,它會在屏幕底部顯示一個白色條。當我打電話給Form.show()它顯示正確,高度是400,所以如何解決這個問題。 我想知道如何在LWUIT中計算尺寸Form以及如何處理MenuBar屏幕底部的高度和白色條紋顯示。

回答

1

我想你輸入了getDisplayWidth()你打算輸入getDisplayHeight()

無論如何,你看到的問題是由於三星設備中的錯誤。 LWUIT調用MIDP中的全屏模式,該模式隱藏了本地標題區域,但是這並不總是立即發生在某些設備中,因此LWUIT從設備獲取不正確的信息。刷新通常可以解決這個問題,並且在LWUIT在屏幕上繪製大小時進行校正。

通常情況下,解決方案相當簡單,創建通用代碼來創建圖像,並且如果圖像尺寸在您即將繪製到屏幕時不恰當,那麼只需重新創建圖像即可。這也將解決設備旋轉的問題,這也可能造成問題。

+0

Hi.when我沒有添加圖像的形式,然後還在屏幕白色條的底部顯示。如何刪除此strip.i只是設置Form.i的背景顏色也添加canvas.servicesReapint() ;但它不會影響任何事情。如何解決這個問題。 – Megha

+0

請勿調用serviceRepaints。你沒有指定如何將圖像添加到表單中?您應該在callSerial end方法中編寫代碼,這意味着LWUIT有時間正確地初始化屏幕。我建議你看一下LWUIT 1.5演示程序,它可以在一個call的回調函數上啓動LWUIT。 –