2013-10-31 59 views
1

我裁剪在圓形方式的圖像,並使用下面的代碼而創建的意圖裁切的圖像尺寸是恆定

intent.setData(mImageCaptureUri); 
    intent.putExtra("outputX", 200); 
    intent.putExtra("outputY", 200); 
    intent.putExtra("aspectX", 1); 
    intent.putExtra("aspectY", 1); 

由於我使用outputX = 200,我得到的每一個剪裁寬度和高度圖像爲200和200,無論我放大或縮小多少。

下面顯示的圖片都有不同的縮放比例,但仍然返回相同的高度和寬度。

width = bitmap.getWidth(); 

enter image description here

enter image description here

是否有人可以告訴我,我應該本着

intent.putExtra("outputX", 200); 

,讓我獲得真正的寬度和高度(而不是200在使用什麼參數每種情況)的裁剪圖像。

+0

你是否刪除了這兩個參數(outputx,outputy)然後嘗試? – Tejas

+0

是的嘗試過。但是對於寬度和高度的某些值,它可以很好地工作,但對於某些值會崩潰。 意思是,當我放大更多的[圖像2有問題](寬度和高度約280),它工作正常,但當放大縮小[圖像1有問題](寬度和高度約300),應用程序只是關閉沒有任何錯誤或警告。 – User42

+0

是的,因爲它無法處理如此巨量的數據。你是否因爲它而發生OutOfMemory錯誤。裁剪後,你在做什麼?將它設置爲圖像視圖? – Tejas

回答

0

不知道這是我回答你的earlier問題時的問題。我相信您正在尋找的答案應該是:

intent.setData(mImageCaptureUri); 
intent.putExtra("aspectX", 1); 
intent.putExtra("aspectY", 1); 
intent.putExtra("scale", false); 

請確保您將參數比例設置爲false。它默認爲true。

PS由於Android是開源的,相機+裁剪應用程序是操作系統的一部分,我所做的只是閱讀源代碼。您應該查看的文件是here。檢查變量mScale以查看參數如何使用。

+0

將scale參數設置爲false會導致奇怪的行爲。不按預期工作。 – User42

+0

你能告訴我發生了什麼嗎?你使用什麼設備和操作系統?我會嘗試類似的。 –