美文网首页
Luban图片压缩,最接近微信的图片压缩

Luban图片压缩,最接近微信的图片压缩

作者: 周大侠侠侠侠侠侠侠侠侠侠侠侠侠 | 来源:发表于2018-04-25 21:55 被阅读0次

    一般来说,现在上传图片基本上都需要,当然自己写的也是可以的,但是今天介绍的这个从介绍上基本上就显示了它的NB之处,当然能够用人名最为框架名的基本上都是有他的厉害之处,不然不敢拿出来。
    github地址 Luban https://github.com/Curzibn/Luban
    现在开始使用 implementation 'top.zibin:Luban:1.1.3'

    图片压缩效果
    效果就是这样了,现在开始使用:
       Luban.with(mContext)
                    .ignoreBy(100)      //默认100K一下的图片不进行压缩
                    .load(pathList)     //设置数据源
                    .setTargetDir(targetDir)    //压缩后的文件地址
                    .setCompressListener(new OnCompressListener() {
                        @Override
                        public void onStart() {
                            //压缩开始 显示LoadingView
                        }
    
                        @Override
                        public void onSuccess(File file) {
                            //压缩成功 关闭LoadingView 保存每一张图片的地址
                        }
    
                        @Override
                        public void onError(Throwable e) {
                            //压缩失败 关闭LoadingView
                        }
                    }).launch();    //启动压缩
    
        Flowable.just(pathList)
                    .observeOn(Schedulers.io())
                    .map(new Function<List<String>, List<File>>() {
                        @Override public List<File> apply(@NonNull List<String> list) throws Exception {
                            return Luban.with(mContext).load(list).get();
                        }
                    })
                    .observeOn(AndroidSchedulers.mainThread())
                    .subscribe(new Subscriber<List<File>>() {
                        @Override
                        public void onSubscribe(Subscription s) {
    
                        }
    
                        @Override
                        public void onNext(List<File> files) {
                            //获取到了存放图片列表的数据
                        }
    
                        @Override
                        public void onError(Throwable t) {
    
                        }
    
                        @Override
                        public void onComplete() {
    
                        }
                    });
    

    使用么反正就是这样的,很简单的方法。原理的话,github上的原文已经是非常详细了,建议大家过去看看。

    相关文章

      网友评论

          本文标题:Luban图片压缩,最接近微信的图片压缩

          本文链接:https://www.haomeiwen.com/subject/yeculftx.html