2012-07-07 68 views
2

我使用的代碼在this教程裁剪圖像的Android作物圖片

Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null); 
        intent.setType("image/*"); 
        intent.putExtra("crop", "true"); 
        intent.putExtra("aspectX", aspectX); 
        intent.putExtra("aspectY", aspectY); 
        intent.putExtra("outputX", outputX);  
        intent.putExtra("outputY", outputY); 
        intent.putExtra("scale", scale); 
        intent.putExtra("return-data", return_data); 
        intent.putExtra(MediaStore.EXTRA_OUTPUT, getTempUri()); 
        intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); 

,但我要修改的三角形(用於確定的區域被裁剪)縱橫比,以使x軸是多較長的Y軸

+1

請注意,此代碼不適用於所有設備。 – CommonsWare 2012-07-07 13:04:02

+0

我知道買我有SD卡 – MohamedAli 2012-07-07 13:06:12

+2

不,我的意思是不是所有支持'ACTION_GET_CONTENT'的MIME類型的'image/*'的活動的實現都將支持裁剪。不僅僅是'crop'等沒有記錄的內容,而且沒有要求任何實施ACTION_GET_CONTENT活動的人都會尊重這些附加內容。您的代碼在許多設備上都會失敗,因爲該設備的相機應用不支持裁剪,或者因爲用戶從不支持裁剪的選擇器中選擇了其他「ACTION_GET_CONTENT」實現。 – CommonsWare 2012-07-07 13:15:54

回答

5

com.android.camera.action.CROP是內部API,因此它不能保證所有的Android設備(同爲ACTION_GET_CONTENT MIME類型image/*支持的一部分。

您將必須實現自己的C如果您希望所有設備都支持rop活動。如果某些設備不支持Intent,至少應該實施某種回退行爲。 請不要忘記做這個! :)

0

嘗試

https://github.com/biokys/cropimage

的工作原理類似於原意

+1

請注意,只有鏈接的答案是不鼓勵的,所以答案應該是搜索解決方案的終點(而另一箇中途停留時間往往會過時)。請考慮在此添加獨立的摘要,並將鏈接保留爲參考。 – kleopatra 2013-08-03 14:17:28

0

請看看這個要點。 這是爲我工作,這是完全custemaizable.and只有一個類有添加,那麼你可以使用它。

[https://gist.github.com/pookie13/gist][1] 
+0

https://gist.github.com/pookie13/1ad1623bec8d7ee76b66 – 2016-02-15 06:34:13