From 0fad45d0d64569098f4daf34ff7e5ae785601304 Mon Sep 17 00:00:00 2001 From: Wu-cheng Li Date: Fri, 17 Dec 2010 11:27:48 +0800 Subject: Choose the preview size that has the same aspect ratio as picture size. Sometimes the camera driver has many preview sizes with close aspect ratios. Now camera app only chooses the preview size if its aspect ratio is an exact match of the picture size or video size. Change-Id: I3be1189688de3ac499f7d69f4febf09c7763393a --- src/com/android/camera/Camera.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'src/com/android/camera/Camera.java') diff --git a/src/com/android/camera/Camera.java b/src/com/android/camera/Camera.java index 2905ba0..4adff4d 100644 --- a/src/com/android/camera/Camera.java +++ b/src/com/android/camera/Camera.java @@ -1879,17 +1879,16 @@ public class Camera extends NoSearchActivity implements View.OnClickListener, List sizes = mParameters.getSupportedPreviewSizes(); Size optimalSize = Util.getOptimalPreviewSize(this, sizes, (double) size.width / size.height); - if (optimalSize != null) { - Size original = mParameters.getPreviewSize(); - if (!original.equals(optimalSize)) { - mParameters.setPreviewSize(optimalSize.width, optimalSize.height); + Size original = mParameters.getPreviewSize(); + if (!original.equals(optimalSize)) { + mParameters.setPreviewSize(optimalSize.width, optimalSize.height); - // Zoom related settings will be changed for different preview - // sizes, so set and read the parameters to get lastest values - mCameraDevice.setParameters(mParameters); - mParameters = mCameraDevice.getParameters(); - } + // Zoom related settings will be changed for different preview + // sizes, so set and read the parameters to get lastest values + mCameraDevice.setParameters(mParameters); + mParameters = mCameraDevice.getParameters(); } + Log.v(TAG, "Preview size is " + optimalSize.width + "x" + optimalSize.height); // Since change scene mode may change supported values, // Set scene mode first, -- cgit v1.1