Android: Camera preview orientation in portrait mode

DominicM picture DominicM · May 19, 2012 · Viewed 43.3k times · Source

I'm using the camera to show preview only (not to take pictures or record videos).

The app is always in portrait mode (landscape mode is disabled). The camera preview is always rotated 90 degrees ccw and I can't change it (neither with setDisplayOrientation nor with p.set("orientation", "portrait" ) and p.set("rotation", 90) ).

Is the preview ALWAYS rotated like this or is it device dependent? If it was always like this in portrait mode, I could just rotate the image afterwards.

Or is there a way to set up the camera correctly? I've read a lot of threads about this but no answer worked for me (Galaxy s2, Android v2.3)

Answer

smith324 picture smith324 · May 19, 2012

To force portrait orientation:

set android:screenOrientation="portrait" in your AndroidManifest.xml and call camera.setDisplayOrientation(90); before calling camera.startPreview();

I have not tested on the GS2 but it works on every phone I have tested on.

Note: setDisplayOrientation was added in API Level 8