我在一个扩展表面视图并实现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需要做很多事情,我不确定你是否已经完成了这些,我不能要求每一个这样的缺失项目.我按照以下教程了解我的基本图形项目.你需要阅读它们,看看你是否遗漏了任何东西.
画布绘图教程: