Android中的压缩处理工具
1.FontZip
字体提取工具
可用作APK字体压缩 用于提取仅需要的美化文字,来压缩assets下的字体文件大小。
具体可以点击上面链接查看。
简单演示2.Luban
Luban(鲁班) —— Android图片压缩工具,仿微信朋友圈压缩策略。
逆向推算,压缩图片的算法步骤。
导入:
compile'top.zibin:Luban:1.1.3'
使用:
异步调用
Luban内部采用IO线程进行图片压缩,外部调用只需设置好结果监听即可:
Luban.with(this) .load(photos)//传人要压缩的图片列表
.ignoreBy(100)//忽略不压缩图片的大小
.setTargetDir(getPath())//设置压缩后文件存储位置
.setCompressListener(newOnCompressListener() {
//设置回调@Override
publicvoidonStart() {
//TODO 压缩开始前调用,可以在方法内启动 loading UI}
@Override
publicvoidonSuccess(Filefile) {//TODO 压缩成功后调用,返回压缩后的图片文件}
@Override
publicvoidonError(Throwablee) {
//TODO 当压缩过程出现问题时调用} })
.launch();//启动压缩
同步调用
同步方法请尽量避免在主线程调用以免阻塞主线程,下面以rxJava调用为例
Flowable.just(photos)
.observeOn(Schedulers.io())
.map(new Function<List<String>,List<File>>() {
@Override public List apply(@NonNull List <String>list) throws Exception {
//同步方法直接返回压缩后的文件
returnLuban.with(MainActivity.this).load(list).get();
}
})
.observeOn(AndroidSchedulers.mainThread())
.subscribe();
谢谢关注,未完待续。。。