项目中选择图片作为头像,都要经过剪裁的过程。一般我们都调用系统剪裁的方法。不过该方法在其它系统上都显示正常,但是在miui系统上就出错了。经测试发现其他系统

cropBitmap = data.getParcelableExtra("data");

方法都是有值的,而miui系统却没有。查资料发现miui系统默认的裁剪图片可能裁剪得过大,或对return-data分配的资源不足,造成return-data失败。

失败的剪裁方法如下:

Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
// 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 200);
intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());
intent.putExtra("noFaceDetection", true);
intent.putExtra("return-data", true);
startActivityForResult(intent, REQUE_CODE_CROP);

解决方案:

剪裁后保存资源路径uri,在onActivityResult()方法中再提取uri图片转化成bitmap即可。

修改后的方法如下:

Intent intent = new Intent("com.android.camera.action.CROP");
intent.setDataAndType(uri, "image/*");
// 下面这个crop=true是设置在开启的Intent中设置显示的VIEW可裁剪
intent.putExtra("crop", "true");
// aspectX aspectY 是宽高的比例
intent.putExtra("aspectX", 1);
intent.putExtra("aspectY", 1);
// outputX outputY 是裁剪图片宽高
intent.putExtra("outputX", 200);
intent.putExtra("outputY", 200);
intent.putExtra("outputFormat", Bitmap.CompressFormat.PNG.toString());
intent.putExtra("noFaceDetection", true);
/**
 * 此方法返回的图片只能是小图片(sumsang测试为高宽160px的图片)
 * 故只保存图片Uri,调用时将Uri转换为Bitmap,此方法还可解决miui系统不能return data的问题
 */
//        intent.putExtra("return-data", true);
uritempFile = Uri.parse("file://" + "/" + Environment.getExternalStorageDirectory().getPath() + "/" + "small.jpg");
intent.putExtra(MediaStore.EXTRA_OUTPUT, uritempFile);
startActivityForResult(intent, REQUE_CODE_CROP);
try {cropBitmap= BitmapFactory.decodeStream(getContentResolver().openInputStream(uritempFile));
} catch (FileNotFoundException e) {e.printStackTrace();
}

好了,这样就解决了,如果有更好的方法欢迎留言!

解决小米miui系统调用系统裁剪图片功能崩溃失败的问题相关推荐

  1. 解决小米miui系统调用系统裁剪图片功能camera.action.CROP后崩溃或重新打开app的问题

    选择相册图片(或调用MediaStore.ACTION_IMAGE_CAPTURE拍照),然后裁剪.在其他系统上都测试正常,但是在小米上出现了问题.小米2s上,裁剪后点击确定直接卡死系统:小米3上,裁 ...

  2. 彻底理解Toast原理和解决小米MIUI系统上没法弹Toast的问题

    彻底理解Toast原理和解决小米MIUI系统上没法弹Toast的问题 参考文章: (1)彻底理解Toast原理和解决小米MIUI系统上没法弹Toast的问题 (2)https://www.cnblog ...

  3. 安卓图片操作(调用系统相机,预览本地照片,调用系统裁剪图片,压缩图片,中心裁剪方形图片,bitmap转byte[])

    先创建照片存储uri public static Uri createImagePathUri(Context context) {Uri imageFilePath = null;String st ...

  4. 小米笔记本重装系统没有wifi功能和扬声器没有声音解决的过程(红米G游戏本)

    要看解决方法的直接看文章最后 经过: 1.因为自己已经用pe系统给很多同学包括我自己重装过很多次系统了,所以最开始打算用pe给小米笔记本装系统.pe盘里面装的镜像是MSDN上面下载的最新1909的wi ...

  5. 小米MIUI双系统原理及刷机

    很多人都会关注小米手机的双系统吧,其实小米现在还不能真正的实现双系统,但确实能用上双系统.# M9 B# m% q! Z- c 说到MIUI系统的刷机,我们首先想到的是观音哥介绍的6种刷机的方式.具体 ...

  6. 小米手机系统服务组件是干什么的_小米MIUI 12系统,电信卡无法使用通话服务提醒何时休?...

    小米MIUI12系统,可以说是国产智能手机系统中,功能最完整,动画效果最好的系统之一,其中的地震预警功能更是成为其他品牌争相模仿的实用功能,不过在小米MIUI12系统强大的背后,也有一些影响使用的bu ...

  7. android调用系统裁剪图片 返回模糊 不清晰的问题

    基本这个功能都是在头像设置的时候会用到 Android 从相机拍完照片 然后跳去系统自带的裁剪 或者从相册选取图片裁剪  然后把裁剪好的图片设置成头像 这里直接贴上跳到裁剪部分的代码 private ...

  8. android裁剪图片功能,Android实现图片区域裁剪功能

    今天做的就是关于实现图片的区域裁剪功能.由于项目功能的需要笔者需要实现PDF文档的阅读,并且就某个页面实现"图片"裁剪(一个页面理解为一张图片).笔者对着方面是一点儿也不熟悉,因此 ...

  9. [经验技巧] 小米 MIUI V4 系统精简列表

    MIUI V4 系统程序功能说明和精简建议 之前需要:进授权管理------开启权限监控-------关闭...OK. 相信这里一定会有一些精简控,精简后刷机,完整包不需要的东西又会出现,只有OTA升 ...

最新文章

  1. CV算法复现(分类算法6/6):MobileNet(2017年V1,2018年V2,2019年V3,谷歌)
  2. 汽车票销售系统mysql,jsp683客运汽车票网上售票系统mysql
  3. when to book didi?
  4. 苹果手机透明桌面_打开手机这个设置,桌面变全透明!
  5. C#使用Xamarin开发可移植移动应用进阶篇(6.使用渲染器针对单个平台自定义控件),附源码
  6. 华为怎么用手机看时间到读秒_华为手机灭屏也可以看时间?其实设置方法很简单,不会有些可惜了...
  7. [转载]IIS 6.0配置HTTP压缩的步骤
  8. 网路游侠:铱迅软件版WEB应用防火墙试用
  9. linux tomcat/bin/shutdown.sh 关闭不了
  10. 关于Romoting又一例
  11. STL 中的容器们(三)
  12. 如何在 Mac 上修复丢失的鼠标光标?
  13. java Monitor对象监视器、对象头、mark word
  14. TCP的粘包问题以及数据的无边界性
  15. 计算机图标ps教程,Photoshop基础教程:路径组合工具打造中国银行标志
  16. android系统同时使用wifi和4g上网
  17. 物联网工程专业属于计算机类吗,物联网工程属于计算机类吗
  18. Android3dtouch xposed,你不应错过的 8 款优秀 Xposed 模块 2015 年度盘点
  19. css里dotted,CSS中dashed和dotted的区别有哪些
  20. 中华大地第二次大变革 看印度反思自我之六 印度模式更有吸引力

热门文章

  1. 最新php开发学习资料网盘下载
  2. 和岳父岳母的有效沟通
  3. 《鸟哥的Linux私房菜》chapter7 20180827~20180831
  4. typora导出word指定样式_Word长文档排版以写论文为例
  5. 网页简单整合Skype
  6. world表格中画斜线
  7. 哈啰A80青春版体验:避繁就简,享受智慧骑行带来的乐趣
  8. 三极管发射极负反馈电阻的原理是什么?为什么就能起到负反馈作用呢
  9. Python 增加时间戳和今日日期
  10. 创新电影院5G的未来