下面列出了android.hardware.Camera.Parameters#setSceneMode ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
public static void configureSceneMode(@NonNull final Parameters parameters) {
if (!Parameters.SCENE_MODE_BARCODE.equals(parameters.getSceneMode())) {
final List<String> supportedSceneModes = parameters.getSupportedSceneModes();
if (supportedSceneModes != null &&
supportedSceneModes.contains(Parameters.SCENE_MODE_BARCODE)) {
parameters.setSceneMode(Parameters.SCENE_MODE_BARCODE);
}
}
}
private void applySettingsToParameters(final CameraSettings settings,
final Parameters parameters) {
final CameraCapabilities.Stringifier stringifier = mCapabilities.getStringifier();
Size photoSize = settings.getCurrentPhotoSize();
parameters.setPictureSize(photoSize.width(), photoSize.height());
Size previewSize = settings.getCurrentPreviewSize();
parameters.setPreviewSize(previewSize.width(), previewSize.height());
if (settings.getPreviewFrameRate() == -1) {
parameters.setPreviewFpsRange(settings.getPreviewFpsRangeMin(),
settings.getPreviewFpsRangeMax());
} else {
parameters.setPreviewFrameRate(settings.getPreviewFrameRate());
}
parameters.setPreviewFormat(settings.getCurrentPreviewFormat());
parameters.setJpegQuality(settings.getPhotoJpegCompressionQuality());
if (mCapabilities.supports(CameraCapabilities.Feature.ZOOM)) {
parameters.setZoom(zoomRatioToIndex(settings.getCurrentZoomRatio(),
parameters.getZoomRatios()));
}
parameters.setExposureCompensation(settings.getExposureCompensationIndex());
if (mCapabilities.supports(CameraCapabilities.Feature.AUTO_EXPOSURE_LOCK)) {
parameters.setAutoExposureLock(settings.isAutoExposureLocked());
}
parameters.setFocusMode(stringifier.stringify(settings.getCurrentFocusMode()));
if (mCapabilities.supports(CameraCapabilities.Feature.AUTO_WHITE_BALANCE_LOCK)) {
parameters.setAutoWhiteBalanceLock(settings.isAutoWhiteBalanceLocked());
}
if (settings.getWhiteBalance() != null) {
parameters.setWhiteBalance(stringifier.stringify(settings.getWhiteBalance()));
}
if (mCapabilities.supports(CameraCapabilities.Feature.FOCUS_AREA)) {
if (settings.getFocusAreas().size() != 0) {
parameters.setFocusAreas(settings.getFocusAreas());
} else {
parameters.setFocusAreas(null);
}
}
if (mCapabilities.supports(CameraCapabilities.Feature.METERING_AREA)) {
if (settings.getMeteringAreas().size() != 0) {
parameters.setMeteringAreas(settings.getMeteringAreas());
} else {
parameters.setMeteringAreas(null);
}
}
if (settings.getCurrentFlashMode() != CameraCapabilities.FlashMode.NO_FLASH) {
parameters.setFlashMode(stringifier.stringify(settings.getCurrentFlashMode()));
}
if (settings.getCurrentSceneMode() != CameraCapabilities.SceneMode.NO_SCENE_MODE) {
if (settings.getCurrentSceneMode() != null) {
parameters
.setSceneMode(stringifier.stringify(settings.getCurrentSceneMode()));
}
}
parameters.setRecordingHint(settings.isRecordingHintEnabled());
Size jpegThumbSize = settings.getExifThumbnailSize();
if (jpegThumbSize != null) {
parameters.setJpegThumbnailSize(jpegThumbSize.width(), jpegThumbSize.height());
}
parameters.setPictureFormat(settings.getCurrentPhotoFormat());
CameraSettings.GpsData gpsData = settings.getGpsData();
if (gpsData == null) {
parameters.removeGpsData();
} else {
parameters.setGpsTimestamp(gpsData.timeStamp);
if (gpsData.processingMethod != null) {
// It's a hack since we always use GPS time stamp but does
// not use other fields sometimes. Setting processing
// method to null means the other fields should not be used.
parameters.setGpsAltitude(gpsData.altitude);
parameters.setGpsLatitude(gpsData.latitude);
parameters.setGpsLongitude(gpsData.longitude);
parameters.setGpsProcessingMethod(gpsData.processingMethod);
}
}
}