捕获多个表面视图的图像

capturing image of multiple surfaceviews

我在框架布局中有两个表面视图,其中还包含带有一些按钮的线性布局。其中一个按钮应该能够捕获并保存两个表面视图的图像。一个表面视图是相机预览,另一个是带有正方形的 opengl 表面。你会如何拍照并保存?

您无法从 SurfaceView 表面读回数据。参见例如.

您 "capture" 的方式是将其呈现为您 可以 从中读取像素的内容。在您的情况下,您将从相机抓取一帧,将其渲染到屏幕外 pbuffer,然后使用 OpenGL ES 将正方形渲染到同一个 pbuffer,然后使用 glReadPixels() 抓取它。本质上,您自己执行表面合成。