2010-05-01 9 views
6

¿Alguien ha encontrado un comportamiento extraño con la API de la cámara cuando se usa en Sony-Ericsson X10 o Droid?¿Por qué Camera.setParameters (Camera.Parameters) no funciona en Sony-Ericsson X10 y Droid?

Por ejemplo, el siguiente código no funciona en esos dispositivos. Como resultado de ello estoy recibiendo una gran cantidad de comentarios negativos sobre la traducción de mercado en muchos pedidos cancelados ...

mParameters.set("rotation", orientation); 
mParameters.set("jpeg-quality", img_quality); 
mParameters.set("picture-size", "1024x768"); 
mCamera.setParameters(mParameters); 

podría sugerir una forma alternativa de conseguir el mismo? Gracias.

Respuesta

11

No puede simplemente establecer valores aleatorios en los parámetros de la cámara porque no sabe si el hardware va a admitir eso, por lo que debe preguntar primero.

mCamera = Camera.open(); 
Camera.Parameters params = mCamera.getParameters(); 
List<Size> sizes = params.getSupportedPictureSizes(); 
// See which sizes the camera supports and choose one of those 
mSize = sizes.get(0); 
params.setPictureSize(mSize.width, mSize.height); 
mCamera.setParameters(params); 
+0

Ok, esto explica por qué "la imagen de tamaño" no funcionó, aunque el tamaño rechazada I' Si usé bastante estándar, "1024x768" ... ¿Tiene alguna idea sobre la "rotación"? Esto es incluso más importante para mí, ya que si eso no funciona, la imagen se rota al azar 90 o -90 grados. ¡Gracias! – mobilekid

+0

Su solución funciona solo en Android 2.0 y revisiones marco posteriores. ¿Alguna idea de cómo obtener los tamaños de imagen admitidos en 1.5 y 1.6? – mobilekid

+0

Parece que el problema de orientación es un problema conocido en G1. Este hilo tiene una solución alternativa. http://groups.google.com/group/android-developers/browse_thread/thread/fec92fc79b38c698/b61f3669ec2a4fcf?show_docid=b61f3669ec2a4fcf En cuanto a conseguir la imagen apoyado en los tamaños de 1,6 y por debajo no es soportado por lo que el mejor consejo que solo para dejarlo solo. – CaseyB

0

Debe corregir primero la orientación de la actividad y luego debe poner Orietación grados:

setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); 
mCamera.setDisplayOrientation(90); 
Cuestiones relacionadas