2013-04-20 74 views
0

我想將畫布的當前狀態保存爲圖像,因爲我將在下一個pointerevent中使用它。如果我使用重繪,它將清除畫布,並且我無法獲取畫布的以前狀態。所以,我想將它保存爲圖像,然後反覆迭代,以便最終我可以確定我想要的。 最後一個問題是如何將畫布保存爲圖像? 或者是否有任何將圖形對象轉換爲字節數組的可能性?如何在j2me中將畫布另存爲圖像?

回答

1

您無法將畫布另存爲圖像。

您必須首先創建圖像,然後纔可以在該圖像上繪製圖像。

基本上,這意味着您的midlet將會做更多的工作,因爲您首先必須繪製到圖像上,然後必須將該圖像繪製到畫布上。但這是你能做到你想做的唯一方法。

1

創建一個具有相同大小(寬度和高度)的屏幕Image。當你想保存畫布狀態調用Canvas.paint傳遞圖像Graphics

class MyCanvas extends Canvas { 
    private Image lastScreen; 

    protected void sizeChanged(int w, int h) { 
    if (lastScreen == null || w != lastScreen.getWidth() 
     || h != lastScreen.getHeight) { 
     lastScreen = Image.createImage(w, h); 
    } 
    } 

    protected void paint(Graphics g) { 
    // paint the whole screen 
    } 

    protected void pointerReleased(int x, int y) { 
    paint(lastScreen.getGraphics()); 
    } 
}