【问题标题】:display CameraPreview and Custom Views inside a SurfaceView在 SurfaceView 中显示 CameraPreview 和自定义视图
【发布时间】:2012-04-26 15:41:08
【问题描述】:

我遇到以下问题: 我目前正在使用 SurfaceHolder 在 SurfaceView 上显示 CameraPreview,如此处所述Camera Dev Guide。所以它提到我必须像这样设置我的 SurfaceHolder 的类型;

// deprecated setting, but required on Android versions prior to 3.0
 mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);

不幸的是,设置 mHolder.lockCanvas() 将失败,因此我无法再在该画布上绘图。 是否有可能在一个 SurfaceView 上绘制 PreviewFrame 以及自己的 View?

如果不是,是否可以渲染两个 SurfaceView,以便相机将用作背景,而第二个 SurfaceView 将渲染其任何视图的“顶部”? 让它运行的最佳方法是什么?

【问题讨论】:

    标签: android android-camera surfaceview android-canvas surfaceholder


    【解决方案1】:

    是的,我已经这样做了。您可以做的是创建一个相对布局,然后您可以使用适当的布局参数将您的表面视图添加到其中。然后您可以使用适当的布局参数在相同的相对布局上添加您的其他视图。

    【讨论】:

    • 那么,不可能在一个 Surface View 中渲染它,我必须采取两个 SurfaceViews?
    • 如果您只有一个表面视图,那么可以做到这一点只是不要添加您的第二个表面视图实际上您正在使用我告诉您的那种技术在您的相对布局上添加所有东西.
    • 刚才我已经修复了一些问题,其中一个 glview 位于整个屏幕的背景,而相机预览位于屏幕角落的前面,尺寸较小,并且上面有一些按钮。如果您的情况相似,那么我可以帮助您。
    • 我现在设法让两个 SurfaceViews 在 FrameLayout 中运行:底部的一个用作 cameraPreview 背景,而顶部的一个具有透明背景并呈现我的 CustomViews
    • 嗯,但请正确检查它们是否显示在主页按钮按下和后按
    猜你喜欢
    • 2013-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多