我有一个3D立方体,我打开相机预览,我想看到这个旋转立方体显示在相机上。
我尝试的是,在实现surfaceHolder.callback
的类的SurfaceChanged方法中,我调用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立方体出现在黑色背景上。
无论如何都要显示两个表面?
答案 0 :(得分:1)
据我所知,您必须在GlView的顶部设置CameraPreview。这不直观,但应该有效。 这是一个可以帮助您的链接:http://digitalbreed.com/2009/android-render-opengl-on-top-of-camera-preview
答案 1 :(得分:0)
您可以进行自己的屏幕外合成,然后将结果绘制到单个SurfaceView中。有关详细信息,请参阅this sample code。