Android 1.6 Rotación de la cámara?
Pregunta
Publiqué esto en los foros de desarrollo de Android, pero quería llegar aquí.
Una de las actividades en nuestra aplicación fue tomar una foto. La vista previa de la imagen muestra la forma correcta en la pantalla en 1.5 & amp; 1.6, pero cuando se guarda, guarda el jpg 90 girado.
Puedo girarlo en tiempo real cuando se muestra, y supongo que podría volver a guardarlo una vez guardado. Mi problema es que me gustaría guardarlo correctamente al tomar la foto.
Mi aplicación mientras está compilada en 1.5 funciona bien. Tuve algunos problemas de memoria w / 1.6 debido al tamaño de la imagen, lo cual fue extraño porque el tamaño de la imagen aumentó al tomar fotos tomando una foto con titular de superficie / captura de imágenes llamar de vuelta. Parece que he arreglado la re-visualización de esas imágenes cambiando el tamaño utilizando una matriz de bitmapfactory. Pero mi cámara ahora está girando Todo 90 grados. Parece que mi anulación de superficie cambió no hace nada, que es donde estaba configurando la rotación en 90 (no puedo recuerda por qué, fue hace 10 meses!). He intentado rotar el Parámetros de parámetros de cámara a 90 grados, 0 grados. No parece para hacer algo ... algún pensamiento?
Solución
Los controladores de la cámara no conocen la orientación del dispositivo. En 1.5 y 1.6, debe llamar a parameters.set (" rotación " ;, grado) para informar a los conductores sobre la rotación antes de llamar a takePicture (). En 2.0, hay una nueva API setRotation (ver más abajo). Tenga en cuenta que algunos dispositivos rotan las imágenes completas por usted y otros simplemente configuran la orientación en el encabezado EXIF.
http://developer.android.com /reference/android/hardware/Camera.Parameters.html#setRotation(int)
Establece la orientación del dispositivo en grados. Por ejemplo, supongamos que la posición natural del dispositivo es el paisaje. Si el usuario toma una imagen en modo horizontal en una resolución de 2048x1536, la rotación debe establecerse en 0. Si el usuario gira el teléfono 90 grados en el sentido de las agujas del reloj, la rotación debe establecerse en 90. Las aplicaciones pueden usar OrientationEventListener para configurar este parámetro. El controlador de la cámara puede establecer la orientación en el encabezado EXIF ??sin rotar la imagen. O el conductor puede rotar la imagen y la miniatura EXIF. Si se gira la imagen Jpeg, faltará la orientación en el encabezado EXIF ??o 1 (la fila # 0 es la parte superior y la columna # 0 es el lado izquierdo). Parámetros
rotación La orientación del dispositivo en grados. La rotación solo puede ser 0, 90, 180 o 270