調用Android系統拍照功能後,三星手機(還有小米8,目前發現這兩個機型)拍攝後的照片被旋轉了90度,橫着拍給你變成豎的,豎的拍給你變成橫的。其它品牌的手機都是正常的,就三星出現這個怪事。
在Android適配上,我原來一直以爲國內的小米手機夠奇葩了,結果還有更奇葩的!你說你沒事旋轉照片幹啥,實在是猜不透其居心何在,純粹是在給開發者製造麻煩啊!
解決辦法是獲取到拍照後照片被旋轉的角度,再旋轉回去就好了。
解決步驟1.獲取到圖片內部旋轉的度數
//獲取圖片的旋轉角度
public static int readPictureDegree(String path) {
int degree = 0;
try {
ExifInterface exifInterface = new ExifInterface(path);
int orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
switch (orientation) {
case ExifInterface.ORIENTATION_ROTATE_90:
degree = 90;
break;
case ExifInterface.ORIENTATION_ROTATE_180:
degree = 180;
break;
case ExifInterface.ORIENTATION_ROTATE_270:
degree = 270;
break;
}
} catch (IOException e) {
e.printStackTrace();
}
return degree;
}
解決步驟2:根據圖片的旋轉度數旋轉回來就行了
/**
* 旋轉圖片
*
* @param angle
* @param bitmap
* @return Bitmap
*/
public static Bitmap rotaingImageView(int angle, Bitmap bitmap) {
//旋轉圖片 動作
Matrix matrix = new Matrix();
matrix.postRotate(angle);
// 創建新的圖片
Bitmap resizedBitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
return resizedBitmap;
}
---------------------
作者:丶Night丶
來源:CSDN
原文:https://blog.csdn.net/qq_36488374/article/details/81068046
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!