2010-08-17 13 views
9

Por el momento estoy intentando configurar mi cámara en mi teléfono Motorola Droid para tomar una imagen que coincida con el tamaño de mi pantalla (854 x 480 píxeles), y estoy intentando lograrlo a través del parámetros de la cámara tales como:Configuración del tamaño de imagen de la cámara en Android

Camera.Parameters parameters = this.mCamera.getParameters(); 
Log.i(TAG, "CAMERA SIZE: (" + this.mCameraView.getWidth() + ", " + this.mCameraView.getHeight() + ")"); 
parameters.setPictureSize(this.mCameraView.getWidth(), this.mCameraView.getHeight()); 
this.mCamera.setParameters(parameters); 
this.mCamera.takePicture(null, null, this); 

tengo mi actividad implementar el método de Camera.PictureCallback onPictureTaken (con exclusión de las llamadas de registro), así que cuando el método se llama takePicture se ejecuta este método:

@Override 
public void onPictureTaken(byte[] data, Camera camera) { 
    Bitmap image = BitmapFactory.decodeByteArray(data, 0, data.length); 
    //Size imageSize = camera.getParameters().getPictureSize(); 
    //image = Bitmap.createBitmap(image, 0, 0, imageSize.width, imageSize.height); 
    this.mCameraView.setBackgroundDrawable(new BitmapDrawable(image)); 
} 

Por alguna razón, sin embargo, mi cámara está tomando fotos en 1280 x 960. ¿Es este el tamaño mínimo en el que la cámara puede capturar una imagen? Desde las llamadas de registro, puedo ver que los parámetros de la cámara todavía están configurados para tener un tamaño de imagen de 854 x 480, pero la imagen sigue saliendo como 1280 x 960. ¿Estoy decodificando la imagen incorrectamente? ¿Estoy configurando incorrectamente los parámetros de la cámara? Estoy haciendo algo más mal?

¡Gracias de antemano por cualquier ayuda que pueda dar!

Saludos, celestialorb.

Respuesta

20

Sí, se proporcionan métodos para obtener los tamaños de imagen admitidos por la cámara. El método de la clase de cámara de parámetros que proporciona los tamaños de imagen admitidos por cámara es getSupportedPictureSizes(); Usando este método, puede obtener el tamaño admitido por cámara. El fragmento de código se vería así: -

Camera camera = Camera.open(); 
Parameters params = camera.getParameters(); 
List<Camera.Size> sizes = params.getSupportedPictureSizes(); 

espero que esto le ayudará.

Gracias Nawab

+0

cámara ha quedado obsoleto y sustituido por la Cámara 2, pero no he encontrado un método análogo en la nueva API – Price

2

He encontrado la respuesta, al parecer, mi propia resolución de pantalla no es un tamaño compatible para la cámara. No sabía que la cámara solo podía admitir ciertos tamaños ya que estoy programando con el 1.6 SDK.

¿Hay alguna forma de recuperar los tamaños admitidos de la cámara para 1.5/1.6?

Cuestiones relacionadas