1. 程式人生 > >Android呼叫相機拍照後圖片橫向顯示的問題解決

Android呼叫相機拍照後圖片橫向顯示的問題解決

最近在做一個專案的時候出現需要實時拍照然後作為頭像上傳伺服器的一個操作,按照以前的老專案老是出現拍照後對

圖片處理的問題上圖片橫向顯示,這樣切割出來的圖片也就是橫向了,找了很久才解決出來問題的根源,現在記錄下來,

以後遇到這個問題就不會出錯了。

1:一般相機拍完照後正常顯示在螢幕上如圖,這樣當然沒有什麼問題:

     

2:但是在拍完照進入下一步裁剪的時候就出現問題了,如下圖所示,在傳入裁剪的介面的時候就出現了問題:

     

3:解決辦法就是在裁剪的介面獲取到bitmap後對其進行旋轉,然後再顯示在裁剪的介面上,程式碼如下:

     這裡寫一個方法,如下所示:

/**
 * 對圖片進行旋轉,拍照後應用老是顯示圖片橫向,而且是逆時針90度,現在給他設定成顯示順時針90度
 *
 * @param bitmap    圖片
 * @param degree 順時針旋轉的角度
 * @return 返回旋轉後的點陣圖
 */
public Bitmap rotateImage(Bitmap bitmap, float degree) {
    //create new matrix
    Matrix matrix = new Matrix();
    matrix.postRotate(degree);
    Bitmap bmp = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true);
    return bmp;
}

當呼叫的時候直接對bitmap進行轉換就可以了,比如這裡對圖片進行順時針轉換90度;

//在這裡對圖片的方向做一個調整(順時針調整90度)
mBitmap =rotateImage(mBitmap, 90);

然後再顯示在ImageView對應的控制元件上面:

4:旋轉後如圖,點選儲存,成功完成圖片的裁剪成圓形,大功告成!: