问题现象
使用折叠屏手机进行自定义相机开发,在折叠态时预览画面正常显示,展开态时则出现黑屏。
背景知识
- 相机开发模型为Surface模型,该模型主要通过Surface实现数据交互。在开发相机应用界面时,首先需要通过创建XComponent组件为预览流提供Surface。
- renderFit设置宽高动画过程中的组件内容填充方式。
问题定位
查看XComponent组件的内容填充方式是否设置了RenderFit.RESIZE_COVER。
分析结论
相机预览渲染组件XComponent使用的SURFACE类型,其背景色是黑色,在API version 18之前,其renderFit通用属性仅支持设置为RenderFit.RESIZE_FILL,应用却设置的RenderFit.RESIZE_COVER,不符合官网使用要求,导致展开态时黑屏。
修改建议
修改相机预览渲染组件XComponent的renderFit属性为RenderFit.RESIZE_FILL,即可使折叠屏相机在展开态时正常显示预览画面。
常见FAQ
Q:如何设置相机预览渲染组件XComponent全屏显示?
A:真机版本升级到API18及以上版本,设置属性renderFit(RenderFit.RESIZE_COVER),请参考文档:组件内容填充方式。