According to Android Developer Site:
after android 2.2 there is the function
\" setDisplayOrientation \"
to adjust the camera preview rotation.
The problem of setting the orientation display of camera doesn't work on operating system version of these devices that is basically the (gingerbread) but for the devices above this it works fine .
I tried this too on these devices the landscape mode works fine but portrait mode has the problem. In case to force to portrait just forced the camera orientation to 90 degrees through this in
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
camera.setDisplayOrientation(90);
}
as well as did post rotate the picture before displaying or saving it through in
PictureCallback myPictureCallback_JPG = new PictureCallback(){
public void onPictureTaken(byte[] arg0, Camera arg1) {
Bitmap bitmapPicture= BitmapFactory.decodeByteArray(arg0, 0, arg0.length);
Matrix matrix = new Matrix();
matrix.postRotate(90);
int height=bitmapPicture.getHeight();
int width=bitmapPicture.getWidth();
Bitmap scaledBitmap = Bitmap.createScaledBitmap(bitmapPicture,height,width, true);
Bitmap rotatedBitmap = Bitmap.createBitmap(scaledBitmap , 0, 0, scaledBitmap.getWidth(), scaledBitmap.getHeight(), matrix, true);
}
HOPE THIS HELPS
Try set orientation of your camera view's xml to landscape.