时间:2021-05-20
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调用系统裁剪的实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Android编程实现调用系统图库与裁剪图片功能。分享给大家供大家参考,具体如下:在Android开发中,调用系统图库和裁剪照片是很常见的需求。相
本文实例讲述了Android实现图片拍照剪裁的方法。分享给大家供大家参考,具体如下:调用系统的裁剪工具对相册或者拍照的图片进行裁剪。startActivityf
本文实例为大家分享了Android调用系统图片裁剪限定尺寸及7.0照相问题的解决方法,供大家参考,具体内容如下内容:手机系统的裁剪介绍,7.0调用相机崩溃解决代
前面照着android系统的裁剪图片的功能自己写了一个相似的工具。功能是大体上实现了,但留下了一个调用的问题:如何从我的程序调用这个裁剪工具,并且获得裁剪后的图
本文实例讲述了Android编程实现调用相册、相机及拍照后直接裁剪的方法。分享给大家供大家参考,具体如下:packagecom.cvte.health.phon