1

我有一个 3D 立方体,我打开相机预览,我想看到这个旋转的立方体显示在相机上。

我尝试的是,在实现的类的 SurfaceChanged 方法中surfaceHolder.callback,我调用camera.setPreviewCallback(new PreviewCallback(){ } 如下:

public void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {
.......
.......
.......
camera.setPreviewCallback(new PreviewCallback() {
        @Override
        public void onPreviewFrame(byte[] data, Camera camera) {
            // TODO Auto-generated method stub
            glSurface.setRenderer( new MyRender());
            setContentView(glSurface);
        }
    });

此代码导致显示相机预览几秒钟,直到表面发生变化,然后,相机预览消失,3D 立方体出现在黑色背景上。

无论如何要显示两个表面吗?

4

2 回答 2

1

据我记得,您必须在 GlView 上设置 CameraPreview。那不直观,但应该可以。这是一个可以帮助您的链接:http: //digitalbreed.com/2009/android-render-opengl-on-top-of-camera-preview

于 2012-05-21T10:17:32.157 回答
0

您可以进行自己的离屏合成,然后将结果绘制到单个 SurfaceView 中。有关详细信息,请参阅此示例代码

于 2012-05-21T10:43:01.927 回答