码迷,mamicode.com
首页 > 其他好文 > 详细

4.4系统,拍照-裁剪,resultCode返回0

时间:2015-08-03 16:15:52      阅读:470      评论:0      收藏:0      [点我收藏+]

标签:

问题描述:

take photo -> 拍照 -> 确定 -> 截图 -> 保存,此时返回给onActivityResult的resultCode是0,截图无效。我查看图片储存的情况,拍完照是有存储好的,但截图后没有存储,图片变成了0byte。

 

原因:

private void cropImageUri(Uri uri, int requestCode){
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", aspectX);
intent.putExtra("aspectY", aspectY);
intent.putExtra("outputX", outputX);
intent.putExtra("outputY", outputY);
intent.putExtra("scale", true);
intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
intent.putExtra("return-data", false);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
intent.putExtra("noFaceDetection", true); // no face detection
startActivityForResult(intent, requestCode);
}

裁减时打开图片的uri与保存图片的uri相同,产生冲突,导致裁减完成后图片的大小变成0Byte。

 

解决办法:

法一:可将相机照片保存在另外的位置,将intent.setDataAndType(uri, "image/*");中的uri换成相机照片倮存的路径即可。

法二:将intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);中的uri换成裁剪后要保存的路径即可。

总结:总之,就是intent.setDataAndType(uri, "image/*");和intent.putExtra(MediaStore.EXTRA_OUTPUT, uri);中uri的地址必须是不同的。

4.4系统,拍照-裁剪,resultCode返回0

标签:

原文地址:http://www.cnblogs.com/butterfly-clover/p/4699310.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!