最近使用j2me所遇到的問題~

來源:互聯網
上載者:User

1. 好多程式在Sun的模擬器上測試非常好,但是拿到Windows Mobile上面之後,問題就出現了N多,其中好多問題可能都是因為程式運行時佔用了太多的空間。

 

a). 在Sun模擬器上運行正常,在Mobile上裝好之後,無法運行,提示OutofMemory之類的資訊,這可能就是因為你的程式運行時申請記憶體申請不到了,你可以檢查一下你的程式裡面是不是使用了太多的圖片資源,是不是有很多全域變數,基本上就是這塊的原因導致的。

b). 用MMAPI來播放gif動畫,在Windows mobile上顯示一片空白,貌視不支援……,若想在所有平台上使用,最好還是自己解碼,在網上有現成的解碼代碼,使用起來也很簡單。

c). 在程式開頭播放了gif動畫之後(自用網上的解碼類),後面程式的主介面顯示不出來,只是一片空白,但在Sun的模擬器上運行正常。如果去除gif動畫,則在mobile上運行正常。最後一點一點的更改paint中的代碼,因為我使用了雙緩衝,在最後往螢幕的Graphics上draw的時候展開了一片,就導致了整個螢幕空白,但如果不使用開始的gif,就正常。 我估計還是因為空白間申請不到導致的問題,因為展開的時候,會產生一個臨時的Image,這個Image如果申請空間出錯的時候,也就無法顯示了。

d). 在程式mobile上啟動並執行過程中,感覺亂了套,有些介面無法顯示。好像還是因為這個問題

 

我記得在mobile上好像每個程式可以有32M的虛擬記憶體吧,我的程式其實也不大,但為啥頻頻申請空間失敗呢?這個問題也不明白,所以寫程式的時候要注意著點,有些全域的東西該釋放的時候,就將其置為null,系統會自動釋放它所佔用的空間。

 

2. 美工給做的圖,看起來很漂亮。但是程式運行出來之後,就在背景上出現一個圓,好像一個大太陽。與是想盡一切辦法,也在眾多網友的協助下,最終還是沒能確定問題出在哪。

不過現在感覺,90%的可能性是因為圖片造成的問題,因為美工做的這個背景圖片,顏色是漸層的,但在手機上無法區分那麼清楚,在某個臨界值以上的顯示一種顏色,在這個臨界值一下的顯示一種顏色,所以就出現了一個明顯的圓圈。

 

3. 寫了N天j2me程式,今天終於知道Sun的模擬器原來也可以支援滑鼠觸摸呀

更改它的方法是:

開啟 C:/WTK2.5.2_01/wtklib/devices 目錄

這下面有幾個檔案夾,分別對應幾種模擬器,這幾個檔案夾下面都有一個 .properties檔案,這個就是模擬器的設定檔。開啟它之後,尋找touch_screen項,將其改為true

即:touch_screen=true

然後重啟模擬器,就可以支援觸摸了。

 

4. 做動畫的時候,要使某個圖片不斷的變化然後將其畫在螢幕上。裡面用到了迴圈,在迴圈裡面調用了repaint,但調試的時候卻發現,執行完repaint之後,並不會去調用paint函數,而是最後迴圈執行完了之後再去調用一次paint,所以根本形不成動畫的效果。

後來在網上發貼詢問之後才知道repaint並不會強制去調用paint函數。要想強制重新整理螢幕,必須要還要調用 serviceRepaints。即要用如下的代碼:

repaint();
serviceRepaints();

這樣就可以強制重新整理了。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.