如何获取画布的当前位图?

3
我想获取与我的画布相关的当前位图,以便我可以对其执行操作。不过,我不知道如何做到这一点。
我已经看到了一些示例,在这些示例中,您创建一个位图并设置画布使用此位图,因此您可以稍后访问它,但我正在使用从SurfaceHolder返回的画布,因此没有构造函数。
例如,示例通常显示以下内容:
Bitmap bmp = Bitmap.createBitmap(xxx, yyy, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(bmp);
  • 所以现在我可以看到bmp。

在我的情况下,画布是通过以下方式获得的:

final SurfaceHolder holder = getSurfaceHolder();

    Canvas c = null;
    try {
        c = holder.lockCanvas();

那么我如何获得c的位图?
编辑 @Reuben - 你可能是对的,我也想过这个问题。简而言之,我的目标是捕获当前画布内容,我已经画了“东西”,并制作一个副本,反转它,放在下面。像一个反射。我找到的示例通过位图执行所有操作,因此我认为需要以某种方式将当前画布捕获到位图中,然后再使用它。如果有更好的方法,我很愿意听取建议!

你需要位图做什么?我怀疑你可能正在错误的方式下尝试去做你想要的事情... - Reuben Scratton
2个回答

3
迟到总比不来好 :)
BitmapDrawable bitDrawable = new BitmapDrawable();
bitmapDrawable.draw(videoView.getHolder().lockCanvas());

您可以从BitmapDrawable中获取位图。

在我的情况下,我这样做:

imageView.setImageBitmap(bitmapDrawable.getBitmap());


哦,太酷了 - 我从来没有完成过那个特定的项目,也许我会重新审视它,看看上面的内容是否有用! - James

-1
c.getSurface() 给你直接访问 Surface 对象的权限。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接