经过试验,发现前置摄像头拍照后的照片依然方向奇葩。因此我做了如下判断和调整
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);