Android 定制相机闪光灯的正确实现
我有一个定制相机,除了我使用的闪光灯外,它工作正常。我曾尝试在Android 定制相机闪光灯的正确实现,android,android-camera,camera-flash,Android,Android Camera,Camera Flash,我有一个定制相机,除了我使用的闪光灯外,它工作正常。我曾尝试在表面更改中使用flash\u MODE\u AUTO。我还尝试使用光传感器使用以下代码: SensorEventListener listener=new SensorEventListener(){ @Override public void onAccuracyChanged(Sensor sensor, int accuracy) { //Not touching this with
表面更改中使用flash\u MODE\u AUTO
。我还尝试使用光传感器使用以下代码:
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);
}
}
};
SensorEventListener=新的SensorEventListener(){
@凌驾
精度更改时的公共无效(传感器,int精度){
//不要用十英尺长的杆子碰这个
}
@凌驾
传感器更改时的公共无效(传感器事件){
浮动勒克斯=事件值[0];
Log.d(标签,“光传感器显示:“+lux+”lux”);
Camera.Parameters params=mCamera.getParameters();
取消自动对焦();
如果(luxFlash_MODE_AUTO有什么问题?你想自定义它的实现吗?我想使用FLASH_MODE_AUTO,但我得到的照片光线太多,我拍摄了第一张曝光量最小的照片,并使用我的应用程序拍摄了这张照片。这个解决方法是因为我不想在所有情况下都将曝光量设置为最小。我只是不想我不知道默认相机和其他相机如何在闪光灯打开的情况下获得好的照片。它们在保存之前是否进行了任何后处理。@bofredo你有什么解决方案吗,你知道有人有解决方案吗,如果nessecary,我可以发布更多的代码。不,不是真的。我曾经编写过一个光突发和normally拍摄的照片中有一半都很糟糕。你可以为某些设备定制,但我不知道一个通用的解决方案。我正在使用Galaxy Nexus进行测试,我使用了像CamCard这样的应用程序,这些应用程序有自定义相机,可以使用闪光灯返回常规图像……有一点多余的光线是可以的,但这是不可接受的,我在近距离。。。