某些功能需要拍照或者从相册选择照片后经过裁剪再上传的时候,

cropp_w_picpath

可以调用手机自带的com.android.camera.action.CROP这个Intent进行裁剪
通过设置输出大小可以得到图片的大小:
intent.putExtra(“outputX”, outputX);
intent.putExtra(“outputY”, outputY);
但是当outputX或者outputY 大小设置为320以上的时候,会发现完全没有效果。
通过搜索才发现了这个问题原来是这样的:
Mobile devices typically have constrained system resources.
Android devices can have as little as 16MB of memory available to a single application.
在Android2.3中,默认的Bitmap为32位,类型是ARGB_8888,
也就意味着一个像素点占用4个字节的内存。3200*2400*4 bytes = 30M。
消耗这样大的内存当然不可能实现。

看看com.android.camera.action.CROP这个Intent可以设置的参数:


data和MediaStore.EXTRA_OUTPUT都是可选的传入数据选项,可以选择设置data为Bitmap,或者将相应的数据与URI关联起来,
你也可以选择是否返回数据(return-data: true)。

使用return Bitmap的话有限制不能太大,那么如果要裁剪大图的话只能使用URI这个参数了。
public Intent getCropImageIntent() {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT, null);
intent.setType(“p_w_picpath/*”);
intent.putExtra(“crop”, “true”);
intent.putExtra(“aspectX”, 1);
intent.putExtra(“aspectY”, 1);
intent.putExtra(“outputX”, 600);
intent.putExtra(“outputY”, 600);
intent.putExtra(“noFaceDetection”, true);
intent.putExtra(“scale”, true);
intent.putExtra(“return-data”, false);
intent.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
intent.putExtra(“outputFormat”, Bitmap.CompressFormat.JPEG.toString());
return intent;
}

×××地址:http://06peng.com/archives/192

转载于:https://blog.51cto.com/06peng/1100029

Android大图裁剪解决办法相关推荐

  1. android 剪切大图,Android大图裁剪解决办法

    某些功能需要拍照或者从相册选择照片后经过裁剪再上传的时候, cropp_w_picpath 可以调用手机自带的com.android.camera.action.CROP这个Intent进行裁剪 通过 ...

  2. Android Bitmap OutOfMemory 解决办法

    Android Bitmap OutOfMemory 解决办法 置顶 2014年07月01日 14:41:22 阅读数:3072 标签: OutOfMemoryBitmapandroid图片优化更多 ...

  3. Android之android.os.NewWorkOnMainThreadException解决办法

    1.问题 用别人提供的的sdk的Demo出现android.os.NewWorkOnMainThreadException 2.解决办法 网络请求开启一个线程请求或者开启异步任务都行 3.总结 1. ...

  4. Android之INSTALL_FAILED_INSUFFICIENT_STORAG解决办法

    INSTALL_FAILED_INSUFFICIENT_STORAG       有时候我们项目再次运行的时候,会出现INSTALL_FAILED_INSUFFICIENT_STORAG错误,先翻译下 ...

  5. Error while obtaining UI hierarchy XML file: com.android.ddmlib.SyncExceptio解决办法

    很是奇怪,之前配置好的环境,代码可以运行,但是今天打开就报这个错了: Error while obtaining UI hierarchy XML file: com.android.ddmlib.S ...

  6. Error:(100, 0) Could not find method android() for arguments 解决办法

    大家可能有过这种遭遇,从githu上下载了一个Android studio的工程,却无法在运行,总是出现各种各样的错误,这里笔者遇到了一种错误:Error:(100, 0) Could not fin ...

  7. android 屏幕关闭 eofexception,android EOFException异常解决办法 (SharedPreferences保存对象)...

    SharePreferences可以保存String 但是不能保存对象 这不符合面向对象. 为此可以通过序列化和反序列化将Serializable对象和字符串相互转化 所以可以将Serizlizabl ...

  8. android.os.networkonmainthredexception,android.os.NetworkOnMainThreadException 解决办法:

    产生的原因: 在4.0之后在主线程里面执行Http请求都会报这个错,也许是怕Http请求时间太长造成程序假死的情况 解决办法: 1.在发起Http请求的Activity里面的onCreate函数里面添 ...

  9. [Android] Bitmap OOM解决办法二

    2019独角兽企业重金招聘Python工程师标准>>> 突然出现的Out Of Memory这个BUG导致我们项目中断了好几天,在经过不断地摸索之后,今天终于得到了解决.鉴于其强大的 ...

最新文章

  1. C++设计模式之策略模式(Strategy)
  2. Redis HyperLogLog 是什么?这些场景使用它~
  3. oracle中结果集合并
  4. Ubuntu与Docker -- Docker安装、使用、容器环境搭建
  5. ubuntu18.10 编译安装caffe gpu版本
  6. 机器学习相关职位走向
  7. 机器人三大定律只是人类的一厢情愿 AI可能并不遵守
  8. WINRAR5.0破解
  9. Teams Bot App 代码解析
  10. OI-wiki 算法基础 模拟 NOIP2014 生活大爆炸版石头剪刀布 python
  11. RJS 模板的另种用法
  12. 函数mmap()的使用
  13. TX2刷机 JetPack4.4
  14. 颜色识别opencv+trackbar调节目标颜色hsv的阈值
  15. 浅论人工智能以及朱迪亚·珀尔(Judea Pearl)的因果推理误区 道翰天琼认知智能
  16. java计算机毕业设计Web企业差旅在线管理系统(附源码、数据库)
  17. 成功解决:不允许有匹配 “[xX][mM][lL]“ 的处理指令目标。
  18. Eclipse 进行 web开发的环境配置
  19. 漫谈广告机制设计 | 从维纳斯的七个香吻说起
  20. [网鼎杯 2020 朱雀组]phpweb 待续

热门文章

  1. ASP.NET 2.0 HttpHandler实现生成图片验证码(示例代码下载)
  2. WMI技术介绍和应用——查询环境变量
  3. FFmpeg在Windows上设置dshow mjpeg编码+libyuv解码显示测试代码
  4. 【Qt】QtCreator中配置clang-format
  5. soul一直显示正在登录聊天服务器,soul这个软件,为什么有些人在玩的时间很久以后(两百天以上),就不会再主动和其他人打招呼了?...
  6. python字典排序方法_Python字典的排序方法一则
  7. Java项目:在线旅游系统(java+jsp+SSM+Spring+mysql+maven)
  8. opencv可以在linux上运行,linux上 安装并 运行opencv
  9. java并发读取相同的文件_高效读取大文件,再也不用担心 OOM 了!
  10. c语言最小费用流_策略算法工程师之路-图优化算法(一)(二分图amp;最小费用最大流)...