我在一个扩展表面视图并实现可运行的类中有这段代码
我能够使用该类基本上允许您使用不同的颜色等绘制到画布上。我正在尝试找到一种方法,该方法允许我在绘制图像后保存图像,这就是方法。无论我做什么,我都会得到一张没有任何内容的黑色图像。有任何想法吗?
我启用了缓存绘图
目标从自定义 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;
}
您的问题只有在您最后的评论中才变得清楚。在您上面发布的代码中,您将返回return bitmap
。这将返回局部变量bitmap
。这个局部变量完全是空白的。您可能正在代码中的其他位置绘制位图或将图像与其关联。但是instance上面代码中的位图是空白的,并且仅在该函数中是本地的。您不能指望它返回更新后的最新位图。
现在,在您发表评论后,我在谷歌上搜索了“获取当前表面视图的位图”,它让我找到了这个答案:从 SurfaceView 创建位图 https://stackoverflow.com/questions/4742868/android-creating-a-bitmap-with-surfaceview-content
在这个问题中,显然是通过扩展 View 而不是 SurfaceView 来解决的。绘图缓存仅适用于视图。
Update:请按照以下教程进行操作。根据您粘贴的代码,尚不清楚错误是什么。绘制到SurfaceView需要做很多事情,我不确定你是否已经完成了这些,而且我不能要求每一个这样缺失的项目。我按照以下教程完成了我的基本图形项目。你需要阅读它们,看看你是否错过了什么。
Canvas 绘图教程:
在 android 中玩图形 http://android10.org/index.php/articlesgraphicsaudiovideo/131-playing-with-graphics-in-android-part-i所有部分。
安卓2D http://android-journey.blogspot.co.il/2010/02/android-2d-simple-example.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)