问题描述
做一款相机应用时,用户反馈相机预览界面太暗了,由于我们是嵌入式设备,没有手机那么高大上得闪光灯补光,因此只能考虑从软件层面提高界面亮度,还好找到了曝光补偿,但是开发过程中发现曝光补偿未生效,界面依然很黑
问题分析
什么事曝光补偿?曝光补偿是指,通过增加或者减少光线的摄入量,来提高或降低照片的亮度。
 曝光补偿存在一定范围,比如-2至2,或者-3至3,单位为EV,可以理解为exposure value。
 每增加或者降低1EV,光线的摄入量便增加或降低1倍。
 android camera的曝光补偿为阶段性变化,每次变化1/2或1/3,该数量级被称为step。
 android camera可以通过以下五个API,分别获取step,最大曝光补偿级数,最小曝光补偿级数,当前曝光补偿级数,设置曝光补偿级数。曝光补偿值=step * 曝光补偿级数。
 (1)float getExposureCompensationStep()
 (2)int getMinExposureCompensation()
 (3)int getMaxExposureCompensation()
 (4)int getExposureCompensation()
 (5)void setExposureCompensation(int)
根据上述概念,我发现setExposureCompensation的值传递错误,当时是随便传值的
问题解决
先计算getMaxExposureCompensation*getExposureCompensationStep,支持最大的补偿级数,将其传递给底层