如何在j2me中将画布保存为图像?

时间:2013-04-20 07:41:39

标签: java-me nokia-s40

我想将画布的当前状态保存为图像,因为我将在下一个pointerevent中使用它。如果我使用重绘它将清除画布,我无法获得以前的画布状态。所以,我想把它保存为图像,然后一遍又一遍地迭代它,这样我最终可以弄清楚我想要的东西。  最后一个问题是如何将画布保存为图像?  或者是否有可能将Graphics对象转换为字节数组?

2 个答案:

答案 0 :(得分:1)

您无法将画布保存为图像。

您必须先创建一个图像,然后才能在该图像上绘画。

基本上这意味着你的midlet会做更多的工作,因为你首先必须绘制你的图像,然后你必须将该图像绘制到画布上。但这是你能做到你想要的唯一方式。

答案 1 :(得分: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());
  }
}