Java tutorial
//package com.java2s; /* * Copyright 2012 Google Inc. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import java.lang.reflect.Method; import java.util.List; import android.hardware.Camera; public class Main { /** Sets the camera's picture size to the maximum available size, as determined by number of pixels (width*height). * Returns a Camera.Size object containing the updated picture size. */ public static Camera.Size setLargestCameraSize(Camera camera) { Camera.Parameters params = camera.getParameters(); List<Camera.Size> pictureSizes = pictureSizesForCameraParameters(params); if (pictureSizes != null && pictureSizes.size() > 0) { long bestPixels = -1; Camera.Size bestSize = null; for (Camera.Size size : pictureSizes) { long pixels = size.width * size.height; if (pixels > bestPixels || bestPixels < 0) { bestPixels = pixels; bestSize = size; } } if (bestSize != null) { params.setPictureSize(bestSize.width, bestSize.height); camera.setParameters(params); } } return params.getPictureSize(); } /** Returns a list of available camera picture sizes, or null if the Android API to get the sizes is not available. */ public static List<Camera.Size> pictureSizesForCameraParameters(Camera.Parameters params) { try { Method m = params.getClass().getMethod("getSupportedPictureSizes"); return (List<Camera.Size>) m.invoke(params); } catch (Exception ex) { return null; } } }