Android 更改Camera2 API中seekbar进度的控制\u AE\u曝光\u补偿建议
我目前正在开发Androids Camera 2 API,目前的问题是,我无法设置Android 更改Camera2 API中seekbar进度的控制\u AE\u曝光\u补偿建议,android,seekbar,android-camera2,Android,Seekbar,Android Camera2,我目前正在开发Androids Camera 2 API,目前的问题是,我无法设置控制\u AE\u曝光\u补偿 我想在-2到2之间曝光 这是我的密码 public void setExposure(double exposureAdjustment) { Range<Integer> range1 = mCameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_COMPENSATION_RANGE); in
控制\u AE\u曝光\u补偿
我想在-2到2之间曝光
这是我的密码
public void setExposure(double exposureAdjustment) {
Range<Integer> range1 = mCameraCharacteristics.get(CameraCharacteristics.CONTROL_AE_COMPENSATION_RANGE);
int minExposure = range1.getLower();
int maxExposure = range1.getUpper();
float newCalculatedValue = 0;
if (exposureAdjustment >= 0) {
newCalculatedValue = (float) (minExposure * exposureAdjustment);
} else {
newCalculatedValue = (float) (maxExposure * -1 * exposureAdjustment);
}
try {
CaptureRequest captureRequest = mPreviewRequestBuilder.build();
mPreviewSession.setRepeatingRequest(mPreviewRequest,
mCaptureCallback, mBackgroundHandler);
mPreviewRequestBuilder.set(captureRequest.CONTROL_AE_EXPOSURE_COMPENSATION, (int) newCalculatedValue);
mPreviewSession.capture(captureRequest, mCaptureCallback, mBackgroundHandler);
Log.v("cascascasc", exposureAdjustment + " : " + newCalculatedValue);
} catch (CameraAccessException e) {
e.printStackTrace();
}
}
您是否可以分享任何例外情况?或其他附加输入?不,没有任何例外。但是我无法直观地检查曝光效果。@ManuelSchmitzberger如果代码工作正常,您可以共享您的Java类文件吗?这应该可以。所以你只需要添加你的setExposure(…)
和seekbar方法。我应该用你的PreviewFragment替换我的cameraFragment类吗?那么,您的代码是否支持所有设备的相机预览的纵横比??
exposure_seekbar.setMin(-2);
exposure_seekbar.setMax(2);
exposure_seekbar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int i, boolean b) {
if (b) {
mCamera2Fragment.setExposure((double)i);
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});