gpt4 book ai didi

android - 从自定义 SurfaceView 获取位图

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:43:49 65 4
gpt4 key购买 nike

我在一个扩展表面 View 并实现可运行的类中有这段代码我能够使用该类基本上允许您使用不同的颜色等绘制到 Canvas 上。我正在尝试获得一种方法,允许我在绘制图像后保存图像,这就是方法。无论我做什么,我只会得到一个黑色的图像,上面什么也没有。有什么想法吗?

我启用了缓存绘图

目标是从自定义 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。这个局部变量是完全空白的。您可能正在代码中的其他地方绘制位图或将图像与其相关联。但是上面代码中位图的实例是空白的,并且只在函数的本地。您不能指望它会返回更新后的最新位图。

现在,在您发表评论后,我用谷歌搜索“获取当前表面 View 的位图”,这让我找到了这个 SO 答案:Create Bitmap from SurfaceView

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

更新:遵循以下教程。根据您粘贴的代码,目前尚不清楚错误是什么。绘制到 SurfaceView 需要做很多事情,我不确定你有没有做过,我不能要求每一个这样缺失的项目。对于我的基本图形项目,我遵循了以下教程。您需要阅读它们,看看是否遗漏了任何内容。

Canvas 绘图教程:

Playing with Graphics in android所有部分。

Android 2D

关于android - 从自定义 SurfaceView 获取位图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14181498/

65 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com