导入依赖
implementation 'top.zibin:Luban:1.1.8'

循环压缩多张图片

ArrayList<String> resultImagePath = new ArrayList<>();//获取到的图片路径集合
ArrayList<File> bPicList = new ArrayList<>();//压缩后保存的集合
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (data != null) {
          
                resultImagePath = data.getStringArrayListExtra("result");
                for (int i = 0; i < resultImagePath.size(); i++) {
                    File file = new File(resultImagePath.get(i));
//            压缩文件
                    Luban.with(this)
                            .load(file)
                            .ignoreBy(100)
                            .filter(new CompressionPredicate() {
                                @Override
                                public boolean apply(String path) {
                                    return !(TextUtils.isEmpty(path) || path.toLowerCase().endsWith(".gif"));
                                }
                            })
                            .setCompressListener(new OnCompressListener() {
                                @Override
                                public void onStart() {
                                    Log.e("测试", "开始");
                                }

                                @Override
                                public void onSuccess(File file) {
                                    //转换成功后的文件
                                    bPicList.add(file);

                                }

                                @Override
                                public void onError(Throwable e) {
                                    Log.e("测试", "失败");
                                }
                            }).launch();

                }
            } 

    }
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐