在Android上可以拍摄3张不同曝光补偿的照片吗?

时间:2013-10-29 07:02:39

标签: android camera

以下是我的代码:

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

特里德照片 Third photo

我的设备是Galaxy Nexus,支持的曝光补偿值为-2到2。

1 个答案:

答案 0 :(得分:1)

您是否看过

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

他们实际上是-2和2吗?

你可以打电话

mCamera.getParameters(params);

设置参数后检查您的设置是否成立。