从自定义SurfaceView获取位图

我有一个扩展表面视图和实现可运行的类中的代码,我可以使用该类基本上允许您使用不同的颜色等绘制到canvas。 我试图得到一个方法,将允许我保存图像后,它被绘制,这是方法。 不pipe我做什么,我只是得到一个没有任何东西的黑色图像。 有任何想法吗?

我有caching绘图启用

目标从一个自定义的SurfaceView中获取一个位图图像我已经耗尽了在这里查看一些其他post的选项,并没有find任何工作。 希望最近有一个新的解决scheme。 非常感谢

public Bitmap getImage() { Bitmap bitmap = Bitmap.createBitmap(this.getWidth(), this.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); this.draw(canvas); return bitmap; } 

Solutions Collecting From Web of "从自定义SurfaceView获取位图"

你的问题只有通过你最后的评论才能清楚。 在上面发布的代码中,您将返回return bitmap 。 这将返回本地variablesbitmap 。 这个局部variables是完全空白的。 您可能正在绘制位图或将图像关联到代码中的其他位置。 但是,上面的代码中的位图实例是空白的,只对函数是本地的。 你不能指望它返回你的更新,最新的位图。

现在,在您的评论后,我GOOGLE“获取当前的SurfaceView的位图”,它导致我这样回答: 从SurfaceView创build位图

在这个问题中,它显然是通过扩展View而不是SurfaceView来解决的。 绘图caching仅适用于View。

更新:按照下面的教程。 根据你粘贴的代码,不清楚错误是什么。 有很多东西需要做绘制到SurfaceView,我不知道你是否已经完成了这些,我不能要求每一个这样的缺失项目。 我接着下面的教程为我的基本graphics项目。 你需要阅读它们,看看你是否错过了任何东西。

canvas上的教程:

在Android的所有部分玩graphics 。

Android 2D