Есть ли способ скопировать содержимое холста, на которое я только что нарисовал, в растровое изображение?Как скопировать холст в растровое изображение
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].
Выглядит хорошо. Предположительно, я не буду одновременно видеть рисунок, сделанный onDraw (см. Мои правки). А как насчет unlockCanvasAndPost? Я полагаю, что я просто не должен его называть. – Mick
Взгляните, может быть, поможет: http://javafriend.yolasite.com/myandroid/saving-bitmap-from-surface-view http://www.tutorialforandroid.com/2010/11/drawing-with-canvas-in -android-saving.html –