2012-03-20 67 views
1

有什么方法可以将我刚绘制的画布内容复制到位图中?如何将画布复制到位图

编辑:只是为了澄清,我当前的绘图过程如下:

Canvas canvas = holder.lockCanvas(); 

if (canvas != null) 
{ 
    onDraw(canvas); // this does all the drawing 

    // at this point I would like to copy the canvas into a bitmap 

    holder.unlockCanvasAndPost(canvas); // this makes the canvas visible to the user 
} 

编辑:看一下第一个答案贴出来,我写了下面的代码:

if (grab_screen == -1) // draw and show on screen as normal 
{ 
    Canvas canvas = holder.lockCanvas(); 
    if(canvas != null) 
    { 
     onDraw(canvas); 
     holder.unlockCanvasAndPost(canvas); 
    }     
} 
else // draw into screengrab_bitmap[grab_screen] 
{ 
    Canvas canvas = new Canvas(screengrab_bitmap[grab_screen]); 
    onDraw(canvas); 
    grab_screen = -1; 
} 

这应该意味着如果我将grab_screen设置为n,那么在下次调用onDraw时,图像将被写入screengrab_bitmap [n]。

回答

6

创建一个“空的”位图,将其分配给画布(new Canvas(newBitmap)),在该画布中绘制事物。您在画布上绘制的所有内容都将绘制在位图中。

+0

看起来不错。据推测,我不会同时看到onDraw完成的绘图(请参阅我的编辑)。那么unlockCanvasAndPost呢?我认为我不应该这样称呼它。 – Mick 2012-03-20 17:30:54

+0

看看,也许帮助:http://javafriend.yolasite.com/myandroid/saving-bitmap-from-surface-view http://www.tutorialforandroid.com/2010/11/drawing-with-canvas-in -Android-saving.html – 2012-03-20 20:24:42

相关问题