rxjava+retrofit鲁班压缩(图片)

一、只传一张图片

1.依赖包

compile 'top.zibin:Luban:1.1.3'

2.

@POST("地址")
Observable<UpLoadAvatarBean> uploaduseravatar(@Body RequestBody avatar);

3.p层

//    上传用户头像
public void uploadavatar(RequestBody avatar) {


    Api.getServer().uploaduseravatar(avatar)
            .compose(schedulersTransformer2())
            .subscribe(new HttpObserver<UpLoadAvatarBean>() {
                @Override
                protected void onSuccess(UpLoadAvatarBean upLoadAvatarBean) {
                    mView.UploadAvatarData(upLoadAvatarBean);
                }


                @Override
                protected void onFail(Throwable e) {
                    mView.onFail("" + e);
                }
            });




}
4.activity层


1)方法:


//鲁班压缩
private void luBanCompressImage(File compressFile) {
    SimpleDateFormat timeStampFormat = new SimpleDateFormat(
            "yyyy-MM-dd-HH-mm-ss");
    String filename = timeStampFormat.format(new Date());
    Luban
            .with(this)
            .load(compressFile)
            .ignoreBy(100)
            .setTargetDir(Environment.getExternalStorageDirectory().toString())
            .setCompressListener(new OnCompressListener() {
                @Override
                public void onStart() {
                    //开始压缩了 加一个loading加载框
                    Log.e(TAG, "luban压缩 onStart: 开始压缩了");
                }


                @Override
                public void onSuccess(File file) {


                    RequestBody requestFile = new MultipartBody.Builder()
                            .setType(MultipartBody.FORM)
                            .addFormDataPart("上传图片照片名字", file.getName(),
                                    RequestBody.create(MediaType.parse("image/*"), 
					file))
                            .addFormDataPart("参数", 参数)
                            .addFormDataPart("参数", 需要的参数)
                            .addFormDataPart("参数", 需要的参数)
                            .build();
                    mPresenter.uploadavatar(requestFile);
                }


                @Override
                public void onError(Throwable e) {
                    Log.e(TAG, "luban压缩: 失败了" + e.getMessage());


                }
            }).launch();
}

2)在图片要赋到控件的那里写上

luBanCompressImage(new File("string类型的图片路径"));

5.v层就不写了











评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值