0

以下は私のコードです:

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 枚の写真を撮りますが、結果は安定しません。

最初の写真 最初の写真

2枚目の写真 2枚目の写真

三枚目の写真 3枚目の写真

私のデバイスは Galaxy Nexus です。サポートされている露出補正値は -2 から 2 です。

4

1 に答える 1

1

の戻り値を見ましたか

int mic = params.getMinExposureCompensation();
int mac = params.getMaxExposureCompensation();

それらは実際には -2 と 2 ですか?

あなたは電話することができます

mCamera.getParameters(params);

パラメータを設定した後、設定が保持されているかどうかを確認します。

于 2013-11-27T09:01:07.047 に答える