解决Android部分手机图片剪切返回崩溃问题
下面是针对于7.0及以上的系统,对于7.0系统谷歌官方对于文件的访问权限做了更为严格的要求,需要使用FileProvider,Android的从 N 开始不允许以file://的方式通过Intent在两个App之间分享文件,的取而代之的英文通过FileProvider生成content://Uri 。如果在Android N 以上的版本继续使用file://方式分享文件,则系统会直接抛出异常,导致App出现 Crash,使用系统自带的intent来实现拍照,相册选择图片后剪切功能时,会遇到返回崩溃的问题。关于FileProvider网上示例很多,也可以参考官方文档原因是设置如下属性时,intent.putExtra("return-data", true); 通过Intent中的data来传递,当数据过大,即超过1M(经测试,这个数值在不同手机还不一样)时就崩了!!!!
imageCropUri = getUri();
private Uri getUri() {
File tmpDir = new File(Environment.getExternalStorageDirectory() + "/image/");
if (!tmpDir.exists()) {
tmpDir.mkdirs();
}
File img = new File(tmpDir.getAbsolutePath() + "/pic.jpeg");
if (img.exists()) {
img.delete();
}
return Uri.fromFile(img);
}
Intent intent = new Intent(Intent.ACTION_PICK, android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, "image/*");
startActivityForResult(intent, GALLERY_REQUEST_CODE);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == GALLERY_REQUEST_CODE && resultCode == RESULT_OK) {
if (data == null) {//相册
return;
}
Uri urifile = data.getData();
// Uri curi = convertUri(urifile);
// startImageZoom(curi);
startImageZoom(urifile);
}else if (requestCode == CROP_REQUEST_CODE && resultCode == RESULT_OK) {
if (data == null) {
return;
}
// //剪裁后的图片
// Bundle extras = data.getExtras();
// if (extras == null) {
// return;
// }
// Bitmap bm = extras.getParcelable("data");
// Uri uri = saveBitmap(bm);
// setImageToView(data);
onStarted();
//调用接口
presenter.modifyAvatar(imageCropUri.getEncodedPath(), “接口地址”);
}
}
/**
* 剪裁图片
* @param uri
*/
private void startImageZoom(Uri uri) {
Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
intent.putExtra("crop", "true");
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
intent.putExtra("outputX", 300);
intent.putExtra("outputY", 300);
intent.putExtra("scale", true);
intent.putExtra("return-data", false);
intent.putExtra("noFaceDetection",true);
//裁剪之后,保存在裁剪文件中,关键
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageCropUri);
intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString());
startActivityForResult(intent, CROP_REQUEST_CODE);
}
解决Android部分手机图片剪切返回崩溃问题相关推荐
- 图片剪切空指针崩溃问题在Android 6.0系统出现
软件在上传头像的时候有个图片剪切功能,本来一直没有问题的,后来公司有个同事买了部nexus手机,运行后发现图片剪切后崩溃,后来发现问题并解决 在这里记录一下 public static Bitmap ...
- Android 6.0系统中图片剪切空指针崩溃问题解决纪录
软件在上传头像的时候有个图片剪切功能,本来一直没有问题的,后来公司有个同事买了部nexus手机,运行后发现图片剪切后崩溃,后来发现问题并解决 在这里记录一下 public static Bitmap ...
- android上传图片被旋转,解决android有的手机拍照后上传图片被旋转的问题
需求:做仿新浪发微博的项目,能够上传图片还有两外一个项目用到手机拍摄图片,这两个都需要把图片上传到服务器 遇到问题:有的手机拍摄的图片旋转90度,有的图片旋转了180度,有的手机是正常的,服务器要求的 ...
- android背景图拉伸,解决android:background背景图片被拉伸问题
解决android:background背景图片被拉伸问题 ImageView中XML属性src和background的区别: background会根据ImageView组件给定的长宽进行拉伸,而s ...
- 解决H5 IOS手机图片上传时图片会旋转90°问题
解决H5 IOS手机图片上传时图片会旋转90°问题 Vant 官方给出的解答需要自己解决,没有处理. 解决办法主要使用了 compressorjs 插件库 一.Vant UI库Uploader 组件图 ...
- Android之给图片去色,返回灰度图片以及ColorMatrix中setSaturation方法的用法
原图: 效果图: 实现以上效果其实很简单,直接上代码: public class MainActivity extends Activity {private Button btn_start;pri ...
- 为什么手机上传图片这么慢 前端_解决BootStrap Fileinput手机图片上传显示旋转问题_心病_前端开发者...
最近因为项目需要用到了bootstrap fileinput的插件,在使用苹果手机上传图片预览时,发现图片方向和手机本地存储方向不一致问题.后来通过查询资料了解图片具有EXIF(Exchangeabl ...
- 解决android有的手机拍照后上传图片被旋转的问题
需求:做仿新浪发微博的项目,能够上传图片还有两外一个项目用到手机拍摄图片,这两个都需要把图片上传到服务器 遇到问题:有的手机拍摄的图片旋转90度,有的图片旋转了180度,有的手机是正常的,服务器要求的 ...
- android 上传头像遇到的问题,Android 7.0 图片剪切问题,选择头像上传
一. 7.0文件地址传输的问题 异常信息:FileUriExposedException: android:name="android.support.v4.content.FileProv ...
- 最新android 8手机图片,手机QQ 8.2.8更新:图片文字提取更轻松
原标题:手机QQ 8.2.8更新:图片文字提取更轻松 今天,腾讯QQ Android.iPhone手机版迎来同时升级到8.2.8正式版,更新内容都颇为丰富,也非常实用. 尤其是备受好评的图片文字提取功 ...
最新文章
- Kubernetes 1.9 发布
- ubuntu copy命令
- CRM_OPPORT_TEXT_DETER_STANDARD
- 客户端与服务器端地址的区别
- 2010软考软件设计师冲刺精选【专家压轴模拟•下】
- e_msg_c_gs_enter_gs_req
- 法拉第未来:投资者声明中存在不一致之处 贾跃亭降薪
- 用mescroll实现无限上拉增加数据,下拉刷新数据 (学习笔记)
- 碧蓝航线频道和服务器所在的文件夹,碧蓝航线如何反和谐 反和谐方法
- 技术团队如何进行绩效考核?阿里、腾讯、华为这样做
- Mac Excel 次坐标轴/双坐标轴/柱状图+折线图
- stm32F407hal+AD9854dds配置+源程序
- 【(类似DP)优化】 分梨子
- dCas9-ROS1——靶向去甲基化的捷径
- 响铃:718 Apple产品京东超级品牌日,如何反映互联网营销大趋势?
- 从一个技术人员角度来谈谈10000小时定律
- 瞎谈干净架构(clean architecture)
- 计算机在现代工作中的应用,浅论计算机在现代管理中应用
- C++ cout输出中文信息乱码问题解决
- quartus II工具In-System Memory Content Editor使用方法