完美解決Android三星手機(jī)從圖庫選擇照片旋轉(zhuǎn)問題
最近解決了一個令我頭疼好久的問題,就是三星手機(jī)拍照圖片旋轉(zhuǎn)的問題,項(xiàng)目中有上傳圖片的功能,那么涉及到拍照,從相冊中選擇圖片,別的手機(jī)都o(jì)k沒有問題,唯獨(dú)三星的手機(jī)拍照之后,你會很清楚的看到會把照片旋轉(zhuǎn)一下,然后你根據(jù)路徑找到的圖片就是已經(jīng)被旋轉(zhuǎn)的了,解決辦法終于被我找到了。我們可以根據(jù)圖片的路徑讀取照片exif(Exchangeable Image File 可交換圖像文件)信息中的旋轉(zhuǎn)角度,至于這個EXIF可以看一下大牛的文章
根據(jù)調(diào)試,可以清楚的發(fā)現(xiàn)三星手機(jī)拍照的圖片的旋轉(zhuǎn)角度是90度,而別的手機(jī)旋轉(zhuǎn)角度是0度
看一下代碼:
/**
* 讀取照片exif信息中的旋轉(zhuǎn)角度
* @param path 照片路徑
* @return角度
*/
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;
}
那么我們只需要根據(jù)旋轉(zhuǎn)角度將圖片旋轉(zhuǎn)過來就OK了
public static Bitmap toturn(Bitmap img){
Matrix matrix = new Matrix();
matrix.postRotate(+90); /*翻轉(zhuǎn)90度*/
int width = img.getWidth();
int height =img.getHeight();
img = Bitmap.createBitmap(img, 0, 0, width, height, matrix, true);
return img;
}
輕松解決了,是不是很完美?
以上就是本文的全部內(nèi)容,希望大家喜歡。
- Android實(shí)現(xiàn)屏幕旋轉(zhuǎn)方法總結(jié)
- Android開發(fā) 旋轉(zhuǎn)屏幕導(dǎo)致Activity重建解決方法
- Android Tween動畫之RotateAnimation實(shí)現(xiàn)圖片不停旋轉(zhuǎn)效果實(shí)例介紹
- Android中利用matrix 控制圖片的旋轉(zhuǎn)、縮放、移動
- Android實(shí)現(xiàn)圖片反轉(zhuǎn)、翻轉(zhuǎn)、旋轉(zhuǎn)、放大和縮小
- Android 圖片縮放與旋轉(zhuǎn)的實(shí)現(xiàn)詳解
- Android開發(fā)之圖形圖像與動畫(二)Animation實(shí)現(xiàn)圖像的漸變/縮放/位移/旋轉(zhuǎn)
- Android 3D旋轉(zhuǎn)動畫效果實(shí)現(xiàn)分解
- Android UI之ImageView實(shí)現(xiàn)圖片旋轉(zhuǎn)和縮放
- Android旋轉(zhuǎn)、平移、縮放和透明度漸變的補(bǔ)間動畫
相關(guān)文章
Android開發(fā)之ClipboardManager剪貼板功能示例
這篇文章主要介紹了Android開發(fā)之ClipboardManager剪貼板功能,結(jié)合簡單實(shí)例形式分析了Android使用ClipboardManager實(shí)現(xiàn)剪貼板功能的相關(guān)操作技巧,需要的朋友可以參考下2017-03-03
Android Internet應(yīng)用實(shí)現(xiàn)獲取天氣預(yù)報(bào)的示例代碼
這篇文章主要介紹了Android網(wǎng)絡(luò)編程及Internet應(yīng)用-獲取天氣,小編覺得挺不錯的,一起跟隨小編過來看看吧2018-05-05
Kotlin實(shí)現(xiàn)多函數(shù)接口的簡化調(diào)用
這篇文章主要為大家詳細(xì)介紹了Kotlin實(shí)現(xiàn)多函數(shù)接口的簡化調(diào)用,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06
Android 開源項(xiàng)目側(cè)邊欄菜單(SlidingMenu)使用詳解
SlidingMenu的是一種比較新的設(shè)置界面或配置界面效果,在主界面左滑或者右滑出現(xiàn)設(shè)置界面,能方便的進(jìn)行各種操作.目前有大量的應(yīng)用都在使用這一效果。如Evernote、Google+、Foursquare等,國內(nèi)的豌豆夾,人人,360手機(jī)助手等都使用SlidingMenu的界面方案。2016-05-05
Android實(shí)現(xiàn)多級樹形菜單并支持多選功能
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)多級樹形菜單并支持多選功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07
Android編程之監(jiān)聽器用法實(shí)例分析
這篇文章主要介紹了Android編程之監(jiān)聽器用法,結(jié)合實(shí)例形式較為詳細(xì)的分析了Android監(jiān)聽器的功能及針對短信的監(jiān)聽與響應(yīng)操作技巧,需要的朋友可以參考下2016-01-01
解決Android橫豎屏切換數(shù)據(jù)丟失問題的方法
這篇文章主要為大家詳細(xì)介紹了Android橫豎屏切換數(shù)據(jù)丟失問題的解決方法,感興趣的小伙伴們可以參考一下2016-05-05
Android簡單實(shí)現(xiàn)菜單拖拽排序的功能
這篇文章主要介紹了Android簡單實(shí)現(xiàn)菜單拖拽排序的功能,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價價值,需要的朋友可以參考一下2022-07-07

