Estoy escribiendo una pequeña aplicación de Android donde un usuario puede colocar una imagen dentro de la vista previa en vivo de la cámara y tomar una foto de esto. La aplicación combinará las dos imágenes apropiadamente. Todo esto funciona bien.¿Cómo maneja Android las diferencias entre el tamaño/relación de vista previa y el tamaño real de SufaceView?
Entiendo que puede obtener/configurar el PreviewSize usando Camera.getParameters(), supongo que esto está relacionado con el tamaño de la "alimentación de cámara" en tiempo real.
Sin embargo, el tamaño de mi SurfaceView donde se muestra la vista previa de la cámara es diferente de los PreviewSizes informados (y utilizados). Por ejemplo, en el emulador mi SurfaceView disponible resulta ser 360x215, mientras que PreviewSize es 320x240. Aún así, todo el SurfaceView se completa con la vista previa.
Pero la imagen que se genera al final es (¿también?) 320x240. ¿Cómo compensa Android estas diferencias en el tamaño y la relación de aspecto? ¿La imagen está truncada?
¿O simplemente no entiendo de qué se trata la Vista Previa - esto está relacionado con el tamaño de las imágenes generadas, o está relacionado con la "vista previa en tiempo real" que se proyecta en SurfaceView? ¿Hay algún ejemplo de cámara no trivial que se ocupe de esto?
Necesito saber cómo se produce la transformación para, finalmente, copiar/escalar la imagen correctamente en la foto, de ahí estas preguntas.
Es posible que desee echar un vistazo a mi respuesta a mí mismo para una pregunta similar: http://stackoverflow.com/a/18159351/994834 – goto10