Luban—— Android图片压缩工具

来源:互联网 发布:java认证考试一年几次 编辑:程序博客网 时间:2024/05/16 20:28

1.导入:

compile 'io.reactivex:rxandroid:1.2.1'compile 'io.reactivex:rxjava:1.1.6'compile 'top.zibin:Luban:1.0.9'
2.使用

Listener方式

Luban内部采用IO线程进行图片压缩,外部调用只需设置好结果监听即可:

Luban.get(this)    .load(File)                     //传人要压缩的图片    .putGear(Luban.THIRD_GEAR)      //设定压缩档次,默认三挡    .setCompressListener(new OnCompressListener() { //设置回调        @Override        public void onStart() {            // TODO 压缩开始前调用,可以在方法内启动 loading UI        }        @Override        public void onSuccess(File file) {            // TODO 压缩成功后调用,返回压缩后的图片文件        }        @Override        public void onError(Throwable e) {            // TODO 当压缩过去出现问题时调用        }    }).launch();    //启动压缩
 3.RxJava方式:

RxJava调用方式请自行随意控制线程:

Luban.get(this)        .load(file)        .putGear(Luban.THIRD_GEAR)        .asObservable()        .subscribeOn(Schedulers.io())        .observeOn(AndroidSchedulers.mainThread())        .doOnError(new Action1<Throwable>() {            @Override            public void call(Throwable throwable) {                throwable.printStackTrace();            }        })        .onErrorResumeNext(new Func1<Throwable, Observable<? extends File>>() {            @Override            public Observable<? extends File> call(Throwable throwable) {                return Observable.empty();            }        })        .subscribe(new Action1<File>() {            @Override            public void call(File file) {                // TODO 压缩成功后调用,返回压缩后的图片文件            }        }).launch();    //启动压缩
4. 方法对应表
方法名功能load(File file)传入要压缩的文件setFilename(String filename)设置压缩后图片命名putGear(int gear)设置压缩档次

原创粉丝点击