Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)
时间:2019-04-07
本文章向大家介绍Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0),主要包括Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Feature: 点击选择拍照或者打开相册,选取图片进行裁剪最后设置为圆形头像。
Problem: 拍好照片,点击裁剪,弹Toast“无法加载此图片”。
Solution: 在裁剪的class里加两行代码
intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION);
主要代码如下:
public static final String PHOTO_IMAGE_FILE_NAME = "fileImg.jpg"; public static final int CAMERA_REQUEST_CODE = 100; public static final int IMAGE_REQUEST_CODE = 101; public static final int RESULT_REQUEST_CODE = 102; private File tempFile = null; private Uri imageUri; //跳转相机 private void toCamera() { File outputImage = new File(getActivity().getExternalCacheDir(), PHOTO_IMAGE_FILE_NAME); try { if (outputImage.exists()) { outputImage.delete(); } outputImage.createNewFile(); } catch (IOException e) { e.printStackTrace(); } if (Build.VERSION.SDK_INT >= 24) { imageUri = FileProvider.getUriForFile(getActivity(), "com.liushengjie.smartbutler.fileprovider", outputImage); } else { imageUri = Uri.fromFile(outputImage); } //启动相机程序 Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); startActivityForResult(intent, CAMERA_REQUEST_CODE); dialog.dismiss(); } //跳转相册 private void toPicture() { Intent intent = new Intent(Intent.ACTION_PICK); intent.setType("image/*"); startActivityForResult(intent, IMAGE_REQUEST_CODE); dialog.dismiss(); } @Override public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode != getActivity().RESULT_CANCELED) { switch (requestCode) { //相机数据 case CAMERA_REQUEST_CODE: //tempFile = new File(Environment.getExternalStorageDirectory(), PHOTO_IMAGE_FILE_NAME); //startPhotoZoom(Uri.fromFile(tempFile)); startPhotoZoom(imageUri); break; //相册数据 case IMAGE_REQUEST_CODE: startPhotoZoom(data.getData()); break; case RESULT_REQUEST_CODE: //有可能点击舍弃 if (data != null) { //拿到图片设置 setImageToView(data); //删除原来的图片 if (tempFile != null) { tempFile.delete(); } } break; } } } //裁剪 private void startPhotoZoom(Uri uri) { if (uri == null) { L.e("uri == null"); return; } Intent intent = new Intent("com.android.camera.action.CROP"); intent.setDataAndType(uri, "image/*"); intent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); intent.addFlags(Intent.FLAG_GRANT_WRITE_URI_PERMISSION); //裁剪 intent.putExtra("crop", true); //宽高比例 intent.putExtra("aspectX", 1); intent.putExtra("aspectY", 1); //图片质量 intent.putExtra("outputX", 320); intent.putExtra("outputY", 320); //发送数据 intent.putExtra("return-data", true); startActivityForResult(intent, RESULT_REQUEST_CODE); } //设置图片 private void setImageToView(Intent data) { Bundle bundle = data.getExtras(); if (bundle != null) { Bitmap bitmap = bundle.getParcelable("data"); profile_image.setImageBitmap(bitmap); } }
总结
以上所述是小编给大家介绍的Android圆形头像拍照后“无法加载此图片”的问题解决方法(适配Android7.0) ,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
- 腾讯AI让二子,柯洁还是输了
- AI创业者的“英雄联盟”,腾讯AI加速器二期项目招募开启
- PyTorch发布一周年:盘点社区和工程大事件,后来者居上态势已显?
- 2018年AI如何发展?普华永道做出了8点预测 | 报告下载
- 不正之风!机器学习论文里都有哪四大投机取巧的写作手法?
- 前端写一个月的原生 Android 是怎样一种体验?
- 给人挖矿还不自知 电脑已变黑客肉鸡
- 反序列化漏洞屡被黑客利用,危害巨大,代码怎样写才安全?
- Mifa 主题微信编辑器
- Mifa GitHub Pages 主题
- Mifa Design:一个服务于 Markdown 的设计体系
- 未来机器人大脑将获取互联网知识自我学习
- 【架构拾集】: Android 移动应用架构设计
- Dore 混合应用框架 —— 基于 React Native 的混合应用迁移方案
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Vim安装插件管理器Vundle
- Ubuntu下为vim安装YouCompleteMe插件
- 单机部署k8s
- VIM个性化配置(一)
- Django+Vue开发生鲜电商平台之6.使用Vue实现商品类别和商品数据前台显示
- 【程序源代码】基于Python开发的Markdown在线文档系统
- 深度学习Pytorch检测实战 - Notes - 第4章 两阶经典检测器:Faster RCNN
- Numpy中的两个乱序函数
- PerfDog4.0探索,支持用户自建web云
- 跨帐号访问COS资源
- 聊聊dubbo-go的DubboProtocol
- 推荐一个很牛叉的开源Flask项目
- 机器学习应用资产管理系列一:强化学习策略(附代码)
- 3分钟短文 | Laravel模型关联删除表记录,用观察者还是事件钩子
- 原理+代码|深入浅出Python随机森林预测实战