Android调用系统裁剪的方法
来源:互联网 发布:sql查询字段相同记录 编辑:程序博客网 时间:2024/05/16 19:24
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。
1 2
- Android调用系统裁剪的方法
- Android裁剪图片最简单方法(调用系统的)
- Android裁剪图片最简单方法(调用系统的)
- Android调用系统裁剪
- android系统裁剪方法
- android系统裁剪方法
- android系统裁剪方法
- android系统裁剪方法
- 调用系统的裁剪功能裁剪图片
- android调用系统相机、调用系统相册,调用系统图片裁剪报错的解决方案
- 调用系统的裁剪功能
- Android 调用系统的照相,浏览图片,转存并裁剪!
- Android 调用系统的照相,浏览图片,转存并裁剪!
- Android [应用代码] 简单调用系统的图片裁剪功能
- Android实现图片的裁剪(不调用系统功能)
- Android调用系统的相机,图库,以及裁剪图片功能。
- android调用系统的相机拍照 、裁剪,然后保存
- Android调用系统的裁剪后,无法响应onActivityResult()
- Nodejs正则表达式函数之match、test、exec、search、split、replace使用详解
- thinkphp框架中,URL传参c/123,接收不到参数的问题
- iOS制作演示gif
- 史上最全最强SpringMVC详细示例实战教程
- 使用AES时出现 Illegal key size or default parameters 时的解决办法
- Android调用系统裁剪的方法
- 适用db2support收集诊断信息
- 合并有序数组
- ssh连接超时自动logout问题
- linux之间copy传输文件方法
- 链表的实现(C++)
- OpenCV_基于混合高斯模型GMM的运动目标检测
- 连微软都不得不称赞的15款软件
- java设计六大原则之开闭原则(OCP)