解决Android图片剪切返回崩溃问题
使用系统自带的intent来实现拍照,相册选择图片后剪切功能时,会遇到返回崩溃的问题。
原因是设置如下属性时,
intent.putExtra("return-data", true);
通过Intent中的data来传递,当数据过大,即超过1M(经测试,这个数值在不同手机还不一样)时就崩了!!!!
解决方法是:通过uri来传递,然后在转换成Bitmap。直接上代码:
/** * Created by lipeng on 2016/12/5. */ public class CutPictureUtils {private Activity activity; public final int CROP_ACTIVITY_RESULT=3; public CutPictureUtils(Activity activity){this.activity=activity; }private Uri imageUri=Uri.parse("file:///sdcard/temp.jpg"); /* * 剪切图片 */ public Uri crop(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", 600); intent.putExtra("outputY", 500); intent.putExtra("scale", true); intent.putExtra("return-data", false); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); intent.putExtra("outputFormat", Bitmap.CompressFormat.JPEG.toString()); intent.putExtra("noFaceDetection", false); // no face detection activity.startActivityForResult(intent, CROP_ACTIVITY_RESULT); return imageUri; }public Bitmap decodeUriAsBitmap(Uri uri){Bitmap bitmap = null; try {bitmap = BitmapFactory.decodeStream(activity.getContentResolver().openInputStream(uri)); } catch (FileNotFoundException e) {e.printStackTrace(); return null; }return bitmap; } }
使用(点击选择照片事件调用gallery,拍照同理):
private void gallery() {// 激活系统图库,选择一张图片Intent intent = new Intent(Intent.ACTION_PICK, null);intent.setDataAndType(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,"image/*");// 开启一个带有返回值的Activity,请求码为PHOTO_REQUEST_GALLERYstartActivityForResult(intent, 2);}CutPictureUtils cutPictureUtils=new CutPictureUtils(******Activity.this);@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (requestCode == 2) {if (data != null) {// 得到图片的全路径Uri uri = data.getData();imageUri=cutPictureUtils.crop(uri);}} else if (requestCode == cutPictureUtils.CROP_ACTIVITY_RESULT) {// 从剪切图片返回的数据if(imageUri != null){Bitmap bitmap = cutPictureUtils.decodeUriAsBitmap(imageUri);if (bitmap != null) {//bitmap类型图片使用}}}super.onActivityResult(requestCode, resultCode, data);}
临时写的,如有不足,见谅
解决Android图片剪切返回崩溃问题相关推荐
- 图片剪切空指针崩溃问题在Android 6.0系统出现
软件在上传头像的时候有个图片剪切功能,本来一直没有问题的,后来公司有个同事买了部nexus手机,运行后发现图片剪切后崩溃,后来发现问题并解决 在这里记录一下 public static Bitmap ...
- Android 6.0系统中图片剪切空指针崩溃问题解决纪录
软件在上传头像的时候有个图片剪切功能,本来一直没有问题的,后来公司有个同事买了部nexus手机,运行后发现图片剪切后崩溃,后来发现问题并解决 在这里记录一下 public static Bitmap ...
- android 图片剪切组件,Android 图片裁剪库 uCrop
软件介绍 uCrop 是[Yalantis](https://yalantis.com/) 组织开源的图片裁剪库, 支持缩放, 旋转图片, 支持各种比例的裁剪框, 非常强大的一个图片裁剪库. 使用 1 ...
- Android7.0相机图册图片剪切封装 - ucrop框架
说明: * 两天使用 ucrop框架 实现了从相册和图册选择图片,然后剪切返回显示的功能.同时兼容了相机拍照7.0. * 对相机调用.相册调用.图片剪切封装成了工具类. * 剪切图片框架ucrop我也 ...
- android 拍照 图片剪切
对于照片拍照上传应该有很多新手不是很清楚,这里我把我多方学习的代码分享给大家. 图片剪切代码 上传 这里是拍照不裁剪的代码 package com.rui.cameratest;import java ...
- Android之给图片去色,返回灰度图片以及ColorMatrix中setSaturation方法的用法
原图: 效果图: 实现以上效果其实很简单,直接上代码: public class MainActivity extends Activity {private Button btn_start;pri ...
- 解决android客户端上传图片到服务端时,图片损坏的问题
解决android客户端上传图片到服务端时,图片损坏的问题 参考文章: (1)解决android客户端上传图片到服务端时,图片损坏的问题 (2)https://www.cnblogs.com/cnbl ...
- Android手机内存图片读取,有效解决Android加载大图片内存溢出的问题
今天在交流群里,有人问我他经常遇到加载图片时内存溢出的问题,遇到的情况还是在自己的测试机或者手机里没有问题,做好了, 到了客户手机里就内存溢出了.其实有时候不同的手机和不同的系统对内存的要求不一样,尤 ...
- android背景图拉伸,解决android:background背景图片被拉伸问题
解决android:background背景图片被拉伸问题 ImageView中XML属性src和background的区别: background会根据ImageView组件给定的长宽进行拉伸,而s ...
- android设置背景图片不填充整个_Android应用开发之android解决背景图片平铺拉伸问题...
本文将带你了解Android应用开发之android解决背景图片平铺拉伸问题,希望本文对大家学Android有所帮助 最近开发时遇到一个问题: 使用一条图片(1200x128)平铺作为背景,测试机型是 ...
最新文章
- 年终盘点:2021年AI领域值得关注的十件事
- 训练深度学习网络时候,出现Nan是什么原因,怎么才能避免?——我自己是因为data有nan的坏数据,clear下解决...
- 【SVM】通过SVM对数据进行训练和分类测试,matlab仿真
- Python使用aiohttp异步爬取糗事百科
- Android TextView 属性设置
- mysql int(3)_MySQL中int(11)与int(3)的区别_MySQL
- 大数据之-Hadoop3.x_Hadoop_HDFS_掉线时限参数设置---大数据之hadoop3.x工作笔记0079
- python networkx 求图中的环_python – 在NetworkX图中获取连接的节点
- SQL SERVER 高效存储过程分页(Max/Min方法)
- 中转换成list集合_Java集合、数组与泛型中的几个陷阱,你掉进了几个?
- 【CF551D】GukiZ and Binary Operations
- 请善待身边的 IT 狗
- 计算机组成原理完整学习笔记(二):系统总线
- scratch python插件_Scratch3.0设计的插件系统(上篇)
- java学习之打印菱形和空心菱形
- 华为ensp ospf配置
- 机器视觉检测技术之颜色视觉工具应用
- [张雨生][张雨生典藏合集22CD][APE/整轨/7.56 GB][旋风/快传]
- 随机森林实例:利用基于CART算法的随机森林(Random Forest)树分类方法对于红酒质量进行预测
- 关于Trigger的介绍
热门文章
- Java实现读取txt文件数据并导入数据库
- 邮件发送与接收,支持163邮箱、outlook邮箱、exchange邮箱
- vue 右键 单击 事件
- module java.base does not “opens java.lang“ to module spring.core
- 浅谈自然语言处理(NLP)学习路线(一)--- 概述
- 论文复现:Expressive Body Capture
- 解决ffmpeg合并视频后播放条拖不动,画面出错的问题
- 在github上写脚注的方法 markdown
- matlab三个坐标,[MATLAB基础] 画有一个有xyz三个坐标的图
- iOS集成支付宝支付 Alipay