question: public static Bitmap rotateBitmap ( Bitmap bitmap , int orientation ) { Matrix matrix = new Matrix ( ) ; switch ( orientation ) { case ExifInterface . ORIENTATION_NORMAL : return bitmap ; case ExifInterface . ORIENTATION_FLIP_HORIZONTAL : matrix . setScale ( - 1 , 1 ) ; break ; case ExifInterface . ORIENTATION_ROTATE_180 : matrix . setRotate ( 180 ) ; break ; case ExifInterface . ORIENTATION_FLIP_VERTICAL : matrix . setRotate ( 180 ) ; matrix . postScale ( - 1 , 1 ) ; break ; case ExifInterface . ORIENTATION_TRANSPOSE : matrix . setRotate ( 90 ) ; matrix . postScale ( - 1 , 1 ) ; break ; case ExifInterface . ORIENTATION_ROTATE_90 : matrix . setRotate ( 90 ) ; break ; case ExifInterface . ORIENTATION_TRANSVERSE : matrix . setRotate ( - 90 ) ; matrix . postScale ( - 1 , 1 ) ; break ; case ExifInterface . ORIENTATION_ROTATE_270 : matrix . setRotate ( - 90 ) ; break ; default : return bitmap ; } try { Bitmap bmRotated = Bitmap . createBitmap ( bitmap , 0 , 0 , bitmap . getWidth ( ) , bitmap . getHeight ( ) , matrix , true ) ; bitmap . recycle ( ) ; return bmRotated ; } catch ( OutOfMemoryError e ) { e . printStackTrace ( ) ; return null ; } }
target:  rotate bitmap based on exif data thank you http://stackoverflow.com/questions/20478765/how-to-get-the-correct-orientation-of-the-image-selected-from-the-default-image