java - 如何将 Canvas 复制到位图中

标签 java android

有什么方法可以将我刚刚绘制的 Canvas 内容复制到位图中吗?

编辑:澄清一下,我当前的绘图过程如下:

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]。

最佳答案

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

关于java - 如何将 Canvas 复制到位图中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9791089/

相关文章:

android - 我们如何在输入 EditText 时过滤 ListView ?

java - org.hibernate.exception.DataException : could not execute statement

java/hibernate - 如何使用注释映射三个表/实体( hibernate 错误未映射到单个属性)

java - 我可以有多个文件夹,例如 webapps 并指定要访问哪个 ROOT.war 文件的域

AndroidManifest.xml 中的 Android 兼容性设置

android - 用android封装大数据库

android - 在 Android 浏览器中使用 input type=file capture=camera 上传照片时,防止照片自动保存到图库

java - 使用方面记录 java 中方法的进入、退出和异常

java - Java中如何进行资源池化?

android - 初始化数组列表的值