Adobe Illustrator可以创建一堆具有不同分辨率的文件,并使用*dpi.png命名它们,并将它们放置在同一目录中。同时,Android要求图像具有相同的名称,并且位于不同的目录中。

我编写了gradle脚本来进行文件复制和重命名:

[
    'ldpi', 'mdpi', 'hdpi', 'xhdpi', 'xxhdpi', 'xxxhdpi'
].each {
    String type = it

    task "copyAi_$it"(type: Copy) {



        String ending = '_Artboard 1' + type + '.png'

        from 'graphics_design/export/'

        include '*' + ending

        rename { String fileName ->
            fileName.replace( ending, '.png' )
        }

        into 'app/src/main/res/drawable-' + type
    }
}


task copyAiExport

copyAiExport.dependsOn copyAi_ldpi, copyAi_mdpi, copyAi_hdpi, copyAi_xhdpi, copyAi_xxhdpi, copyAi_xxxhdpi

如您所见,我将显式编写整个任务copyAliExport的所有依赖关系,并枚举所有生成的任务。

我也可以动态添加依赖项吗?

我在文档中找不到可理解的示例。

最佳答案

您在寻找什么吗?

task all
[
    1, 2, 3, 4,
].each { n ->

    def t = task "task$n" {
      doLast {
        println n
      }
    }

    all.dependsOn << t
}

10-07 13:09
查看更多