我试图获取SurfaceView
画布的一部分并将其保存为Bitmap
。
我所看到的每个答案都是创建一个新的Canvas
并将Bitmap
传递给构造函数。
因为我正在使用SurfaceView
,所以我使用SurfaceHodler
和mSurfaceHolder.lockCanvas();
来获取我的画布,因此我无法使用{{{{}}创建新的Canvas
1}}。
如何在不创建新画布的情况下将我的画布的一部分放到Bitmap
?
答案 0 :(得分:1)
Canvas是一个渲染界面。你无法获得它的一部分或全部,因为它只是界面。像素被绘制到位图或Surface,因此如果您需要它们,您必须将它们读回来,或者再次绘制它们。
无法从Surface检索像素 - 它是生产者 - 消费者对的生产者方。最简单的方法是使用由Bitmap支持的新Canvas重复绘图命令。
另见this answer。