AE指的是auto exposure(自动曝光),AF指的是auto focus(自动对焦)。camera中一般是默认AE和AF的,也就是说在强光或者暗环境下,camera预览都会主动调整预览的关系明暗,调整焦点。但如果想拍摄这些环境下的照片,使用了AE和AF就会拍不出想要的效果,所以api中才提供了AELock和AFLock这两种api。
在预览界面的上表现就是,长按预览区域,会提示“AE/AF锁定”,此时长按的点就是对焦焦点,此时的曝光度会保持,哪怕切换到强光或者到黑暗的桌底,预览上都不会发生改变了。
1.AE Lock
针对camera api1:
//1.通过parameters获取底层是否支持aelock
Camera.Parameters.isAutoExposureLockSupported();
//2.根据1的返回情况,决定能否进行2的设置
if (mAeLockSupported) {
LogHelper.d(TAG, "[configParameters] setAutoExposureLock " + mAeLock);
parameters.setAutoExposureLock(mAeLock);
}
//setAutoExposureLock这里就是api中的设定了,也是设置key-value到底层
针对camera api2:
//1.通过CameraCharacteristics拿到是否支持aelock
mIsAeLockAvailable = characteristics.get(CameraCharacteristics.CONTROL_AE_LOCK_AVAILABLE);
//2.通过CaptureRequest.Builder设置CONTROL_AE_LOCK的值</