将Canvas的一部分作为位图

时间:2016-06-11 13:05:01

标签: android android-canvas surfaceview android-bitmap

我试图获取SurfaceView画布的一部分并将其保存为Bitmap
我所看到的每个答案都是创建一个新的Canvas并将Bitmap传递给构造函数。

因为我正在使用SurfaceView,所以我使用SurfaceHodlermSurfaceHolder.lockCanvas();来获取我的画布,因此我无法使用{{{{}}创建新的Canvas 1}}。

如何在不创建新画布的情况下将我的画布的一部分放到Bitmap

1 个答案:

答案 0 :(得分:1)

Canvas是一个渲染界面。你无法获得它的一部分或全部,因为它只是界面。像素被绘制到位图或Surface,因此如果您需要它们,您必须将它们读回来,或者再次绘制它们。

无法从Surface检索像素 - 它是生产者 - 消费者对的生产者方。最简单的方法是使用由Bitmap支持的新Canvas重复绘图命令。

另见this answer