Android調(diào)用系統(tǒng)裁剪的實現(xiàn)方法
Android調(diào)用系統(tǒng)裁剪,這個已經(jīng)使用的很熟悉了。但是近期項目里使用的時候遇到了一些小問題,所以在此整理一下,以作記錄。
首先看代碼:
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);
這是修改之前的部分,看著沒有任何問題,裁剪能正常進(jìn)行。而且輸出尺寸720*720已經(jīng)算是比較小了,但是問題出現(xiàn)了,在裁剪圖片只使用一小塊的時候,圖片周圍出現(xiàn)了黑框。
一開始沒明白黑框是怎么加上去的,以后是服務(wù)端處理后加的(服務(wù)端多上傳到服務(wù)器的圖片都做了壓縮,一般顯示縮略圖)。但是經(jīng)過仔細(xì)查看,才發(fā)現(xiàn)圖片在我上傳之前就有了黑框,那問題就自然是出在我這里了。
查了好多資料,終究還是發(fā)現(xiàn)了問題的所在。因為在裁剪大圖片或是高清圖時,不管取多小,都不會有黑框,這就自然想到了裁剪后會有邊緣的自動填充。
知道了問題的所在,就好解決了,然后就查找解決方法,跟想法一樣,就是當(dāng)圖片裁剪后過小時,做填充拉伸。后來找到了這條屬性,是這樣的:
intent.putExtra("scale", true); intent.putExtra("scaleUpIfNeeded", true);
這里不做解釋,英文的代碼都是有實際意義的,看字面意思差不多都能理解。
在用到了這兩條重要的屬性之后呢,我的裁剪方法就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);
因為在代碼中加入了這一句:
intent1.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(tempFile));//
即指定了目標(biāo)文件,所以在onActivityResult里面可以直接使用tempFile。
以上這篇Android調(diào)用系統(tǒng)裁剪的實現(xiàn)方法就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android布局ConstraintLayout代碼修改約束及輔助功能
這篇文章主要為大家介紹了Android布局ConstraintLayout代碼修改約束及輔助功能示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09Android直播系統(tǒng)平臺搭建之圖片實現(xiàn)陰影效果的方法小結(jié)
這篇文章主要介紹了Android直播系統(tǒng)平臺搭建, 圖片實現(xiàn)陰影效果的若干種方法,本文給大家?guī)砣N方法,每種方法通過實例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2021-08-08Android學(xué)習(xí)項目之簡易版微信為例(一)
這篇文章主要以簡易版微信為例,為大家介紹了Android簡易版微信項目的基礎(chǔ)知識,感興趣的小伙伴們可以參考一下2016-06-06使用PackageManager獲得應(yīng)用信息實例方法
PackageManager是Android中一個很有用的類,能夠獲取已安裝的應(yīng)用(包)的信息,如應(yīng)用名稱、圖標(biāo)、權(quán)限,安裝、刪除應(yīng)用(包)等2013-11-11詳解如何在Flutter中獲取設(shè)備標(biāo)識符
這篇文章主要為大家介紹了幾種通過Flutter讀取設(shè)備信息的方法,文中的示例代碼講解詳細(xì),感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下2022-04-04Android編程開發(fā)之RadioGroup用法實例
這篇文章主要介紹了Android編程開發(fā)之RadioGroup用法,結(jié)合實例形式分析了Android中RadioGroup單選按鈕的具體使用技巧,需要的朋友可以參考下2015-12-12Android開發(fā)筆記之:如何屏蔽Button setClickable與setEnabled
本篇文章是對在Android中,如何屏蔽Button setClickable與setEnabled的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05Android自定義帶動畫的半圓環(huán)型進(jìn)度效果
這篇文章主要為大家詳細(xì)介紹了Android自定義帶動畫的半圓環(huán)型進(jìn)度效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-06-06