set Largest Camera Size - Android android.hardware

Android examples for android.hardware:Camera Size

Description

set Largest Camera Size

Demo Code

import java.lang.reflect.Method;
import java.util.List;

import android.hardware.Camera;

public class Main {

  /**//from   w  w  w. ja va2s. c  o m
   * 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;
    }
  }

}

Related Tutorials