Android調(diào)用系統(tǒng)裁剪的實(shí)現(xiàn)方法
Android調(diào)用系統(tǒng)裁剪,這個(gè)已經(jīng)使用的很熟悉了。但是近期項(xiàng)目里使用的時(shí)候遇到了一些小問(wèn)題,所以在此整理一下,以作記錄。
首先看代碼:
Intent intent1 = new Intent("com.android.camera.action.CROP");
intent1.setDataAndType(Uri.fromFile(new File(image.path)), "image/*");
intent1.putExtra("crop", "true");
intent1.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));//
intent1.putExtra("aspectX", 1);
intent1.putExtra("aspectY", 1);
intent1.putExtra("outputFormat", Bitmap.CompressFormat.JPEG);
intent1.putExtra("outputX", 720);
intent1.putExtra("outputY", 720);
intent1.putExtra("return-data", false);
startActivityForResult(intent1, 0x222);
這是修改之前的部分,看著沒(méi)有任何問(wèn)題,裁剪能正常進(jìn)行。而且輸出尺寸720*720已經(jīng)算是比較小了,但是問(wèn)題出現(xiàn)了,在裁剪圖片只使用一小塊的時(shí)候,圖片周圍出現(xiàn)了黑框。
一開始沒(méi)明白黑框是怎么加上去的,以后是服務(wù)端處理后加的(服務(wù)端多上傳到服務(wù)器的圖片都做了壓縮,一般顯示縮略圖)。但是經(jīng)過(guò)仔細(xì)查看,才發(fā)現(xiàn)圖片在我上傳之前就有了黑框,那問(wèn)題就自然是出在我這里了。
查了好多資料,終究還是發(fā)現(xiàn)了問(wèn)題的所在。因?yàn)樵诓眉舸髨D片或是高清圖時(shí),不管取多小,都不會(huì)有黑框,這就自然想到了裁剪后會(huì)有邊緣的自動(dòng)填充。
知道了問(wèn)題的所在,就好解決了,然后就查找解決方法,跟想法一樣,就是當(dāng)圖片裁剪后過(guò)小時(shí),做填充拉伸。后來(lái)找到了這條屬性,是這樣的:
intent.putExtra("scale", true);
intent.putExtra("scaleUpIfNeeded", true);
這里不做解釋,英文的代碼都是有實(shí)際意義的,看字面意思差不多都能理解。
在用到了這兩條重要的屬性之后呢,我的裁剪方法就OK了,修改之后代碼是這樣的:
Intent intent1 = new Intent("com.android.camera.action.CROP");
intent1.setDataAndType(Uri.fromFile(new File(image.path)), "image/*");
intent1.putExtra("crop", "true");
intent1.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));//
intent1.putExtra("aspectX", 1);
intent1.putExtra("aspectY", 1);
intent1.putExtra("outputFormat", Bitmap.CompressFormat.JPEG);
intent1.putExtra("outputX", 720);
intent1.putExtra("outputY", 720);
intent1.putExtra("scale", true);
intent1.putExtra("scaleUpIfNeeded", true);
intent1.putExtra("return-data", false);
startActivityForResult(intent1, 0x222);
因?yàn)樵诖a中加入了這一句:
intent1.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));//
即指定了目標(biāo)文件,所以在onActivityResult里面可以直接使用tempFile。
以上這篇Android調(diào)用系統(tǒng)裁剪的實(shí)現(xiàn)方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
解析Android開發(fā)優(yōu)化之:軟引用與弱引用的應(yīng)用
Java從JDK1.2版本開始,就把對(duì)象的引用分為四種級(jí)別,從而使程序能更加靈活的控制對(duì)象的生命周期。這四種級(jí)別由高到低依次為:強(qiáng)引用、軟引用、弱引用和虛引用,本篇文章重點(diǎn)介紹一下軟引用和弱引用2013-05-05
深入Android Handler,MessageQueue與Looper關(guān)系
這篇文章主要介紹了深入Android Handler,MessageQueue與Looper關(guān)系,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-08-08
Android?鼠標(biāo)光標(biāo)的圖形合成原理實(shí)例探究
這篇文章主要為大家介紹了Android?鼠標(biāo)光標(biāo)的圖形合成原理實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2024-01-01
Android Studio實(shí)現(xiàn)簡(jiǎn)易計(jì)算器(表格布局TableLayout)
這篇文章主要為大家詳細(xì)介紹了Android Studio實(shí)現(xiàn)簡(jiǎn)易計(jì)算器,表格布局TableLayout,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-03-03
TabLayout關(guān)聯(lián)ViewPager后不顯示文字的解決方法
這篇文章主要為大家詳細(xì)介紹了TabLayout關(guān)聯(lián)ViewPager后不顯示文字的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-11-11
Android關(guān)于WebView中無(wú)法定位的問(wèn)題解決
本篇文章主要介紹了Android關(guān)于WebView中無(wú)法定位的問(wèn)題解決,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-10-10

