2012-03-20 7 views
1

私がちょうど描いたキャンバスの内容をビットマップにコピーする方法はありますか?キャンバスをビットマップにコピーする方法

EDIT:だけ明確にする、次のように私の現在の描画手順が動作します:

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 
} 

EDIT:

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

"空の"ビットマップを作成し、それをCanvas(新しいCanvas(newBitmap))に割り当て、そのキャンバスに物を描画します。キャンバスに描画するすべてがビットマップに描画されます。

+0

いいね。おそらく、私はonDrawによって行われた描画を同時に見ることはできません(自分の編集を参照)。 unlockCanvasAndPostはどうですか?私は単にそれを呼ぶべきではないと推測します。 – Mick

+0

ご覧ください。多分助けてください:http://javafriend.yolasite.com/myandroid/saving-bitmap-from-surface-view http://www.tutorialforandroid.com/2010/11/drawing-with-canvas-in -android-saving.html –

関連する問題