Java tutorial
//package com.java2s; import android.content.Context; import android.database.Cursor; import android.media.ExifInterface; import android.net.Uri; import android.provider.MediaStore; import android.util.Log; public class Main { private static final String TAG = "TakeImagesUtil"; private static int getRotation(Context context, Uri imageUri, boolean isCamera) { int rotation; if (isCamera) { rotation = getRotationFromCamera(context, imageUri); } else { rotation = getRotationFromGallery(context, imageUri); } Log.d(TAG, "Image rotation: " + rotation); return rotation; } private static int getRotationFromCamera(Context context, Uri imageFile) { int rotate = 0; try { context.getContentResolver().notifyChange(imageFile, null); ExifInterface exif = new ExifInterface(imageFile.getPath()); int orientation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); switch (orientation) { case ExifInterface.ORIENTATION_ROTATE_270: rotate = 270; break; case ExifInterface.ORIENTATION_ROTATE_180: rotate = 180; break; case ExifInterface.ORIENTATION_ROTATE_90: rotate = 90; break; } } catch (Exception e) { e.printStackTrace(); } return rotate; } public static int getRotationFromGallery(Context context, Uri imageUri) { String[] columns = { MediaStore.Images.Media.ORIENTATION }; Cursor cursor = context.getContentResolver().query(imageUri, columns, null, null, null); if (cursor == null) return 0; cursor.moveToFirst(); int orientationColumnIndex = cursor.getColumnIndex(columns[0]); return cursor.getInt(orientationColumnIndex); } }