優化J2ME中的paint 函式

2021-05-23 02:37:55 字數 1826 閱讀 3037

在模擬器上跑得很好的程式在實際的手機上卻很慢,甚至執行不了,大多數是因為重畫機制的使用不當所 致,j2me中的 paint()函式起到了畫螢幕的作用,往往在需要動畫的情況下非常頻繁地需要呼叫,而且在一些低端手機或移動裝置上面,對於paint()函式的頻繁調 用會引起相應時間長甚至無法正常工作等問題。所以,對於paint()函式的優化就顯得特別重要。這裡,我們提出幾點優化paint()函式的方法和注意 事項,在程式設計中大家可以參考:1.不要在paint()函式當中使用耗時的操作,比如:

view plaincopy to clipboardprint?

try{

image image_splash = image.createimage("/back.png");

g.drawimage(image_splash, 0, 0,graphics.top | graphics.left);

catch(exception ex) {

try{

image image_splash = image.createimage("/back.png");

g.drawimage(image_splash, 0, 0,graphics.top | graphics.left);

catch(exception ex) {

其中的建立的方法由於需要io操作非常費時,因此要盡量避免,建立操作只在初始化的時候做一遍。

2.使用畫素較小的,一般來說,顏色種類少的顯示時間就少,因此,盡量避免使用256色以上的,一些色調豐富,過度緩慢的往往需要 多種畫素來滿足需求,因此,盡量使用**,或者轉換成256或16色的,會減少繪圖時間。

3. 區域性重新整理, 每次的重畫repaint()都要呼叫paint(),而並不是每一次repaint()都要重畫整個螢幕,因此有時候之需要重畫部分螢幕即可,這又有兩 種方法可以實現,第一種是利用clip,clip是乙個矩形的繪圖區域,當重繪時,僅僅重繪這個區域以內的內容,而不管其他部分,因此可以節省操作,可 以通過setclip()等函式設定繪圖區域。

另外可以通過repaint( x,y,width,height )來重畫指定的某乙個區域,這個函式實際上也是設定了某乙個重繪clip(),不過使用起來會更加方便。

4.減少repaint()的次數,盡量只在產生作用的時候才重畫。

5.將paint()函式的部分內容提到外面來做,使得重畫減少計算量和操作。

6.使用雙快取技術,某些裝置本身就支援雙快取技術,判斷裝置是否支援雙快取可以用canvas類的isdoublebuffered()方法。實現雙快取可以使用image 類的可變影象技術。如,利用:image = image.createimage( width, height );

graphics g = image.getgraphics();

來 建立乙個可變影象,它和canvas一樣都能夠得到graphics繪圖物件的繪製。而且可以不在paint()函式裡面,這一點非常重要。可以在 init()中放入繪圖語句,或者放到乙個單獨的函式中,把繪製到螢幕外緩衝當中,然後在paint()函式中僅僅是把這個image繪製到當前的 canvas裡面了,這樣就可以節省很多計算操作。比如:view plaincopy to clipboardprint?

public void paint(graphics g){

g.translate(x - g.gettranslatex(), y - g.gettranslatey());//設定當前座標系統

g.drawimage(image,0,0,g.top|g.left);

g.translate(x - g.gettranslatex(), y - g.gettranslatey());//改回原來的座標系統

www.guaiguaier.com 乖乖兒-育兒工具資源網

優化J2ME中的paint 函式

關鍵字 優化 paint j2me,區域性重新整理,區域性重畫,我們經常會遇到這樣的問題,在模擬器上跑得很好的程式在實際的手機上卻很慢,甚至執行不了,這大多數是因為重畫機制的使用不當所致,j2me 中的paint 函式起到了畫螢幕的作用,往往在需要動畫的情況下非常頻繁地需要呼叫,而且在一些低端手機或...

怎樣優化j2me程式之中的 paint 函式

我們經常會遇到這樣的問題,在模擬器上跑得很好的程式在實際的手機上卻很慢,甚至執行不了,這大多數是因為重畫機制的使用不當所致,j2me中的paint 函式起到了畫螢幕的作用,往往在需要動畫的情況下非常頻繁地需要呼叫,而且在一些低端手機或移動裝置上面,對於paint 函式的頻繁呼叫會引起相應時間長甚至無...

怎樣優化J2ME程式當中的paint 函式

林剛 關鍵字 優化 paint j2me,區域性重新整理,區域性重畫,我們經常會遇到這樣的問題,在模擬器上跑得很好的程式在實際的手機上卻很慢,甚至執行不了,這大多數是因為重畫機制的使用不當所致,j2me 中的paint 函式起到了畫螢幕的作用,往往在需要動畫的情況下非常頻繁地需要呼叫,而且在一些低端...