从自定义SurfaceView获取位图

Lpc*_*ark 9 android extends bitmap surfaceview android-canvas

我在扩展表面视图和实现runnable的类中有这个代码我能够使用该类基本上允许您使用不同的颜色等绘制到画布.我正在尝试获得一种方法,允许我在绘制图像后保存图像,这是方法.无论我做什么,我只是得到一个没有任何内容的黑色图像.有任何想法吗?

我启用了缓存绘图

目标从自定义SurfaceView获取位图图像我已经用尽了在这里查看其他帖子的选项,但没有找到任何可行的工作.这里希望最近有一个新的解决方案.非常感谢

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;
        }
Run Code Online (Sandbox Code Playgroud)

san*_* mk 1

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

现在,在您发表评论后,我在谷歌上搜索了“获取当前表面视图的位图”,它引导我找到了这个答案:从 SurfaceView 创建位图

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

更新:按照以下教程进行操作。根据您粘贴的代码,尚不清楚错误是什么。绘制到SurfaceView需要做很多事情,我不确定你是否已经完成了这些,而且我不能要求每一个这样缺失的项目。我按照以下教程完成了我的基本图形项目。你需要阅读它们,看看你是否错过了什么。

Canvas 绘图教程:

在 android 中玩图形所有部分。

安卓2D