亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android調用系統裁剪的實現方法

發布時間:2020-10-07 20:10:46 來源:腳本之家 閱讀:198 作者:yang_xuan_ 欄目:移動開發

Android調用系統裁剪,這個已經使用的很熟悉了。但是近期項目里使用的時候遇到了一些小問題,所以在此整理一下,以作記錄。

首先看代碼:

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);

這是修改之前的部分,看著沒有任何問題,裁剪能正常進行。而且輸出尺寸720*720已經算是比較小了,但是問題出現了,在裁剪圖片只使用一小塊的時候,圖片周圍出現了黑框。

一開始沒明白黑框是怎么加上去的,以后是服務端處理后加的(服務端多上傳到服務器的圖片都做了壓縮,一般顯示縮略圖)。但是經過仔細查看,才發現圖片在我上傳之前就有了黑框,那問題就自然是出在我這里了。

查了好多資料,終究還是發現了問題的所在。因為在裁剪大圖片或是高清圖時,不管取多小,都不會有黑框,這就自然想到了裁剪后會有邊緣的自動填充。

知道了問題的所在,就好解決了,然后就查找解決方法,跟想法一樣,就是當圖片裁剪后過小時,做填充拉伸。后來找到了這條屬性,是這樣的:

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));//

即指定了目標文件,所以在onActivityResult里面可以直接使用tempFile。

以上這篇Android調用系統裁剪的實現方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

凤台县| 南平市| 和林格尔县| 山丹县| 九龙坡区| 彭山县| 闽清县| 红桥区| 双流县| 望奎县| 古浪县| 扎赉特旗| 瓮安县| 乌海市| 鹤峰县| 越西县| 杭锦旗| 扎赉特旗| 如皋市| 昆山市| 嘉禾县| 黄石市| 泗水县| 张家界市| 遂平县| 栾川县| 开江县| 信宜市| 友谊县| 连南| 忻城县| 邓州市| 林西县| 万盛区| 左云县| 县级市| 堆龙德庆县| 邹城市| 托克逊县| 翁源县| 贵定县|