我曾经有一个漂亮的小片段,将相机装入一个帧中(图像覆盖在帧布局的顶部)。在对我的代码进行一些重构之后(我已经不停地进行了重构),我突然注意到我的相机没有工作。本应显示相机的SurfaceView是空白的。
在过去的四个小时里,我到处都添加了空检查和断点。我找不到破损的根源。因此,我将大部分代码换成了CommonsWare Camera示例的逐行副本。主要区别在于我的版本是片段而不是活动。
我在重新实现它时理解了大部分(如果不是全部),并使其适合我当前基于片段的系统。虽然它没有修复我的错误,但过了一段时间我发现将我的SurfaceView移动到我的ImageView上方。但是,它没有提供预期的叠加效果,因为框架现在已经有效地覆盖在表面上。
答案 0 :(得分:1)
...直到我发现我已将片段容器设置为硬件层并忘记将其恢复正常。
请注意这一行:
findViewById(R.id.fragment_container).setLayerType(View.LAYER_TYPE_HARDWARE, null);
它与相机渲染相混淆。
希望这有助于其他一些可怜的人。