Android多进程压缩图片库
来源:互联网 发布:口袋助理软件 编辑:程序博客网 时间:2024/06/06 00:33
这两天也是重新找到了工作,总结了一下面试,发现被问到图片压缩的问题还是比较多的。所以我把以前写的一个图片压缩工具拿出来抽取成了一个库,一方面是复习一下这方面的知识,比如说AIDL的使用,图片压缩的多种方法等等,另一方面也希望被有这方面需求的小伙伴采纳或是提出意见和建议。
解释一下为什么要使用多进程压缩图片。由于压缩图片需要加载和操作Bitmap,这需要的内存非常大,有的低配手机就非常容易出现OOM的情况。由于多进程可以扩展应用内存,于是就有了这个方案。这样的话就算压缩进程崩溃也不会影响主进程的运行。在这个库中对压缩进程出现异常情况也进行了处理,如果出现奔溃或者通讯异常都会把压缩任务交还到主进程处理,这样就减少了一些不可预期的问题。
每天都要过得开心 ( ゜- ゜)つロ乾杯 !
Demo
Demo地址 https://github.com/wdzawdh/Compressor
使用方法
使用时把Demo中的compressor库粘贴到自己项目即可,当然可以打成arr或者jar包使用。需要使用的类只有一个ImageCompressor。
1.初始化
ImageCompressor imageCompressor = new ImageCompressor.Builder(context) .setCompressFormat(CompressConfig.COMPRESS_WEBP) .setMaxWidth(1028) .setMaxHeight(1028) .setMaxSize(700) .setDestinationDir("压缩图片保存的文件夹(有默认)") .startCompressProcess()//开启多进程压缩模式 .build();
2.压缩图片
imageCompressor.compress(pickPhotoPath, new ImageCompressor.CompressImageListener() { @Override public void onCompressSuccess(String basePath, String imgPath) { iv_content.setImageURI(Uri.parse("file://" + imgPath)); } });
3.关闭进程
解绑压缩图片的服务进程,如果没有开启startCompressProcess则不需要释放。如果不解绑服务进程也不会影响程序运行。
@Overrideprotected void onDestroy() { super.onDestroy(); //关闭进程(如果没有开启不需要关闭) mImageCompressor.stopCompressProcess();}
阅读全文
0 0
- Android多进程压缩图片库
- android 图片库的封装
- Android图片库Fresco
- Android图片库Fresco介绍
- 图片库
- 图片库
- Android自带Drawable图片库
- android 4.4 系统图片库调用
- Android Picasso异步加载图片库
- android 编译facebook/fresco图片库
- android 直接打开系统图片库
- Android笔记:仿系统图片库(GridView的多选删除)实用篇
- android 手机拍照 调用手机图片库
- Facebook推出强大Android图片库Fresco
- android开发 - 拍照和选择本地图片库
- Facebook推出强大Android图片库Fresco
- Android Glide图片库优缺点及使用
- Fresco介绍:Android的一个新图片库
- 项目之间Cookie的共享
- Mysql数据库常用引擎
- COGS-1715 [CQOI2011]动态逆序对(树状数组+线段树)
- Maven创建web项目
- Jsoup获取网页全部原始内容
- Android多进程压缩图片库
- HDU
- Wavel Sequence HDU
- pitch yaw roll是什么
- 硬件电路的设计流程(两层板)
- MySQL行级锁、表级锁、页级锁
- Django 自定义分页
- EditText弹出软键盘遮住输入框问题
- 设计模式之6大设计原则--转载自一位大神