2013-10-29 76 views
0

下面是我的代碼:在Android上可以拍攝3張不同曝光補償的照片嗎?

private void takeMultiPictures(final int n) { 
    if (n <= 0) { 
     ToastUtils.show("Capture Successfully!"); 
     saveMultiPictures(); 
     return; 
    } 
    Parameters params = mCamera.getParameters(); 
    int mic = params.getMinExposureCompensation(); 
    int mac = params.getMaxExposureCompensation(); 
    switch (n) { 
    case 3: 
     params.setExposureCompensation(mac); 
     break; 
    case 2: 
     params.setExposureCompensation(mic); 
     break; 
    case 1: 
     params.setExposureCompensation(0); 
     break; 
    } 
    mCamera.setParameters(params); 
    mCamera.takePicture(null, null, null, new PictureCallback() { 
     @Override 
     public void onPictureTaken(byte[] data, Camera camera) { 
      mMultiPictures.add(data); 
      mCamera.startPreview(); 
      takeMultiPictures(n - 1); 
     } 
    }); 
} 

通過這個代碼,相機將拍攝3張照片,但結果並不穩定。

第一光 First photo

第二光 Second photo

的THRID照片 Third photo

我的設備是Galaxy Nexus的,支撐在曝光補償值從-2到2

回答

1

你看看

的返回值
int mic = params.getMinExposureCompensation(); 
int mac = params.getMaxExposureCompensation(); 

它們實際上是-2和2嗎?

,你可以設置參數來檢查,如果您的設置保存後調用

mCamera.getParameters(params); 

+0

我檢查了值。最後我發現,在某些設備上,曝光補償更改大約需要500毫秒才能生效。 –