Cámara Android setDisplayOrientation: comportamiento extraño para la pestaña galaxia

Me enfrento a un problema al intentar tener una vista previa de la cámara en modo retrato. He leído varios artículos sobre él y lo había resuelto teniendo el código siguiente:

Display display = ((CaptureActivity)context).getWindowManager().getDefaultDisplay(); int width = display.getWidth(); int height = display.getHeight(); if (Integer.parseInt(Build.VERSION.SDK) >= 8) { setDisplayOrientation(camera, 90); }else{ Camera.Parameters parameters = camera.getParameters(); parameters.set("orientation", "portrait"); camera.setParameters(parameters); } 

donde setDisplayOrientation () se define como:

 protected void setDisplayOrientation(Camera camera, int angle) { Method downPolymorphic; try { downPolymorphic = camera.getClass().getMethod( "setDisplayOrientation", new Class[] { int.class }); if (downPolymorphic != null) downPolymorphic.invoke(camera, new Object[] { angle }); } catch (Exception e1) { } } 

Ahora he probado este código a un Galaxy Tab y no. Lo solucioné (intento y enfoque de error) utilizando el código siguiente:

 if (height == 1024 && width == 600) { Camera.Parameters parameters = camera.getParameters(); parameters.set("orientation", "portrait"); parameters.setRotation(90); camera.setParameters(parameters); } 

Ahora mis dos preguntas son:

1) ¿Por qué hay tal problema mientras Galaxy ficha tiene la versión 2.2, y

2) ¿Hay alguna mejor solución a este problema?

¡Muchas gracias por su tiempo!

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.