/**
* 焦距增大
*/
public void addFocus(int cameraFocalValue) {
if (mCamera.getParameters().isSmoothZoomSupported()) {
Log.i("焦距", "不支持变焦");
return;
}
Camera.Parameters parameters = mCamera.getParameters();
final int maxZoom = parameters.getMaxZoom();
Log.i("焦距", "最大支持值" + maxZoom);
final int nowZoom = parameters.getZoom();//当前焦距
Log.i("焦距", "当前焦距" + nowZoom);
int setZoomValue = maxZoom * cameraFocalValue / 10;
Log.i("焦距", "设置焦距" + setZoomValue);
parameters.setZoom(setZoomValue);
List<String> focusModes = parameters.getSupportedFocusModes();
if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
} else if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
}
parameters.setPreviewFormat(ImageFormat.NV21);
mCamera.setParameters(parameters);
}
/**
* 焦距减少
*/
public void reduceFocal(int cameraFocalValue) {
if (mCamera.getParameters().isSmoothZoomSupported()) {
Log.i("焦距", "不支持变焦");
return;
}
Camera.Parameters parameters = mCamera.getParameters();
final int maxZoom = parameters.getMaxZoom();
Log.i("焦距", "最大支持值" + maxZoom);
final int nowZoom = parameters.getZoom();//当前焦距
Log.i("焦距", "当前焦距" + nowZoom);
int setZoomValue = maxZoom * cameraFocalValue / 10;
Log.i("焦距", "设置焦距" + setZoomValue);
parameters.setZoom(setZoomValue);
List<String> focusModes = parameters.getSupportedFocusModes();
if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
} else if (focusModes.contains(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO)) {
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_CONTINUOUS_VIDEO);
}
parameters.setPreviewFormat(ImageFormat.NV21);
mCamera.setParameters(parameters);
}
真诚点赞 诚不我欺~