经过试验,发现前置摄像头拍照后的照片依然方向奇葩。因此我做了如下判断和调整
try { ExifInterface exifInterface = new ExifInterface(getPhotoPath()); int result = exifInterface.getAttributeInt( ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED); Log.d(TAG,"exif方向 "+result); int degree = 0; if(getPhotoSource()){ //如果是前置摄像头照的照片 switch(result) { case ExifInterface.ORIENTATION_ROTATE_90: //正常竖屏拍照时 degree = 270; break; case ExifInterface.ORIENTATION_NORMAL://逆时针旋转90度时 degree = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: //逆时针旋转180度 degree = 90; break; default: break; } }else{//如果是后置摄像头照的照片 switch(result) { case ExifInterface.ORIENTATION_ROTATE_90: //正常竖屏拍照时 degree = 90; break; case ExifInterface.ORIENTATION_ROTATE_180://逆时针旋转270度时 degree = 180; break; case ExifInterface.ORIENTATION_ROTATE_270: //逆时针旋转180度 degree = 270; break; default: break; } } //旋转图片使其校正 mCurrentBitmap=bitmapManager.rotate(mCurrentBitmap, degree,getPhotoPath(), displayMetrics.widthPixels, displayMetrics.heightPixels);