1. 程式人生 > >android系統方法裁剪圖片部分手機顯示為圓形

android系統方法裁剪圖片部分手機顯示為圓形

近期,針對金立手機,聯想手機和vivoX9等部分手機拍照或選擇圖冊照片之後裁切各種問題統一測試和除錯發現問題彙總:

1、金立手機,android(3.0.X):

      照相之後,點選直接返回頁面,選擇相簿圖片也沒反應,不進入裁切介面;

2、聯想手機,android(5.5.1,貌似):

      拍照和相簿選擇圖片之後可以進入裁切介面,但是裁切確定返回不顯示圖片;

3、vivoX9,android(6.0.1):

       拍照直接裁剪上傳正常,但是不能選擇相簿圖片上傳;

4、紅米(note1)手機(4.4):

       獲取圖片路徑需要單獨處理,因為返回的圖片路徑和其他不一樣;

針對1-3問題,我搜索了好多解決方案無效之後,猜測是android6版本的許可權問題需要單獨處理,搜尋了好多方法之後,找到了一篇關於裁切uri的說法:

新儲存的圖片uri和儲存路徑uri一致,導致儲存衝突,部分手機上衝突導致儲存檔案為0位元組,還有部分手機會將原圖裁剪覆蓋,導致原圖被修改;

原來裁切方法如下:

empty
5、自此,uri裁切後圖片單獨儲存之後,測試以上手機問題除了金立(可以選擇圖冊裁切上傳)不能直接拍照裁切之後,照完照片點√,系統異常終止,       其他手機問題均解決(1-3),華為手機在1:1方形裁切時,顯示為圓形問題解決參考;
原文:http://blog.csdn.net/GAMEYEYI/article/details/51062398

Android呼叫系統方法對圖片進行裁剪時,華為手機顯示的圖形會變成圓形,改為aspectX和aspectY不是1;1就好

if(android.os.Build.MODEL.contains("HUAWEI"))
        {//華為特殊處理 不然會顯示圓
        intent.putExtra("aspectX", 9998);  
            intent.putExtra("aspectY", 9999);
        }
        else
        {
        intent.putExtra("aspectX", 1);  
            intent.putExtra("aspectY", 1);
        }