图片压缩

2021-03-19  本文已影响0人  小婷android
第一步:在build中引用压缩包
implementation 'top.zibin:Luban:1.1.8'
第二步:写压缩工具类
 public static void compress(Context context, File file, Handler.Callback callback) {
        Luban.with(context)
                .load(file)
                .ignoreBy(100)
                .setTargetDir(Constant.photo_path)
                .filter(path -> !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif")))
                .setCompressListener(new OnCompressListener() {
                    @Override
                    public void onStart() {
                        // TODO 压缩开始前调用,可以在方法内启动 loading UI
                        LogUtils.debug(TAG, "图片压缩:onStart");
                    }

                    @Override
                    public void onSuccess(File file) {
                        // TODO 压缩成功后调用,返回压缩后的图片文件
                        LogUtils.debug(TAG, "图片压缩:onSuccess");
                        Message message = Message.obtain();
                        message.obj = file;
                        callback.handleMessage(message);
                    }

                    @Override
                    public void onError(Throwable e) {
                        // TODO 当压缩过程出现问题时调用
                        LogUtils.debug(TAG, "图片压缩:onError," + e.getMessage());
                    }
                }).launch();
    }

第三步:activity中引用
   CompressUtils.compress(this, takePhotoFile, msg -> {
                        File compressFile = (File) msg.obj;
                        long length = compressFile.length();
                        Log.e("aaa", "图片压缩后: " + length / 1024.f / 1024.f + "MB");
                        return false;
                    });
上一篇下一篇

猜你喜欢

热点阅读