我有一个可以正常工作的自定义相机,除了我正在使用的闪光灯的实现。我尝试过使用FLASH_MODE_AUTO
in surfaceChanged
。我也尝试过使用以下代码Light Sensor
:
SensorEventListener listener=new SensorEventListener(){
@Override
public void onAccuracyChanged(Sensor sensor, int accuracy) {
//Not touching this with a ten foot pole
}
@Override
public void onSensorChanged(SensorEvent event) {
float lux=event.values[0];
Log.d(TAG, "The light sensor says: "+lux+" lux");
Camera.Parameters params=mCamera.getParameters();
cancelAutoFocus();
if(lux<50)
{
if(params.getFlashMode()!=Parameters.FLASH_MODE_ON)
params.setFlashMode(Parameters.FLASH_MODE_ON);
if(params.getExposureCompensation()!=params.getMinExposureCompensation())
params.setExposureCompensation(params.getMinExposureCompensation());
Log.d(TAG, "Exposure has been set to "+params.getMinExposureCompensation());
mCamera.setParameters(params);
}
else
{
params.setFlashMode(Parameters.FLASH_MODE_OFF);
mCamera.setParameters(params);
}
}
};
无论我做什么,当我拍照并且闪光灯闪光时,我的照片最终看起来像这样:
但是,当我使用默认的相机应用程序拍照时,它看起来很普通,甚至有点暗。
我想完全摆脱这种使用光传感器的解决方法并使用。我怎样才能FLASH_MODE_AUTO
让我的相机在弱光条件下和/或打开闪光灯时表现良好?
或者我必须做任何后期处理以确保图像的亮度较低。