在某些设备上,如果未设置onPreviewFrame
来显示相机预览,则不会调用SurfaceView
。
但是,我在服务中处理相机,所以我无法设置SurfaceView
,但我不想有可见的预览。
如何做到这一点?我可以通过编程方式创建SurfaceView
并将其设置为Camera::setPreviewDisplay
吗?
这一定是否可行?
它适用于几乎所有没有SurfaceView
的手机,但不适用于HTC One X和Google Nexus One ......
答案 0 :(得分:4)
根据this question,在代码中创建SurfaceView
可以正常工作。虽然我认为你不能通过服务创建它。
另一种方法是在SurfaceView
内创建1px-1px RelativeLayout
并将其隐藏在其上方的其他视图中。 (可见性仍应为VISIBLE
)。我们将这个技巧用于Path相机用户界面,我们通过OpenGL渲染预览缓冲区并且工作正常。
答案 1 :(得分:1)
根据配置简单的文档,可以显示可见和显示的表面视图以激活相机预览。它可能会重叠
答案 2 :(得分:0)