图片压缩

第一步:在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;
                    });
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容