android – 从自定义SurfaceView获取位图

我在一个扩展表面视图并实现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;
        }

解决方法

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

现在,在您发表评论后,我用谷歌搜索获取当前表面视图的位图”,它引导我得到这个答案:Create Bitmap from SurfaceView

在那个问题中,它显然是通过扩展View而不是SurfaceView来解决的.图形缓存仅适用于View.

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

画布绘图教程:

Playing with Graphics in android所有部件.

Android 2D

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...