解決三星手機拍照默認橫屏問題


博客園第一天,發一個今天發現的問題吧。

今天在開發android的時候發現一個問題,三星和聯想手機的系統拍照功能默認橫屏拍照。拍出來的照片也是橫屏,所以在頁面上的展示也是橫屏,與實際相反。

查資料后發現這是手機廠商的問題,從代碼端無法決定橫屏拍還是豎屏拍。

 

最后我的解決辦法是手動判斷照片是橫向還是豎向(即照片的偏離角度),主要代碼如下:

/**
* 讀取圖片屬性:旋轉的角度
* @author GuoJing
* @param path
* 圖片絕對路徑 degree旋轉的角度
*/
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;
}

 

然后根據偏離的角度去手動旋轉圖片然后上傳,相關代碼如下:

Matrix matrix = new Matrix();
matrix.reset();
matrix.setRotate(FileUtil.readPictureDegree(path));
bitmap = Bitmap.createBitmap(bitmap,0,0, bitmap.getWidth(), bitmap.getHeight(),matrix, true);

 

 

最后該問題完美解決。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM