使用 gradle on Mac OS 从 SVG 为 Android 生成可绘制对象
Generating drawables from SVG for Android with gradle on Mac OS
情况:
我从设计师那里得到了 SVG 文件。
图标字体在标准 Android 组件中不容易使用。
所以我需要所有我支持的尺寸的可绘制对象
一切都应该通过 Gradle 实现自动化。
已用:
我发现并使用了这个不错的插件
https://github.com/eowise/gradle-imagemagick
不幸的是,它不是开箱即用的。
我总是从 gradle 得到 "No such file or directory"。
无法找到插件使用的 ImageMagick 转换工具。
直接从 shell 开始,没有 gradle 生成的转换调用正在运行。
最后我为我修复了它,我会把它写下来作为一个捷径。
安装:
从 shell
执行
- 酿造更新
- brew 安装 imageMagick
- brew 安装 librsvg
设置:
设置 PATH 变量对我不起作用。我不得不将imageMagick转换工具的安装路径写到/etc/launchd.conf
我在这里找到了信息:[https://serverfault.com/questions/16355/how-to-set-global-path-on-os-x][1]
再次shell:
- sudo touch /etc/launchd.conf
- sudo nano /etc/launchd.conf
添加这一行:
- setenv 路径/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
您可以查看 convert 的安装位置。在 shell 中输入 "which convert"。现在是 /usr/local/bin
保存修改后laundchd.conf。
重启
Gradle的配置:
将以下代码片段添加到全局 build.gradle 脚本中。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.eowise:gradle-imagemagick:0.4.0'
}
}
task svgToPNG {
[
[ variant: 'mdpi', size: '32x32' ],
[ variant: 'hdpi', size: '48x48' ],
[ variant: 'xhdpi', size: '64x64' ],
[ variant: 'xxhdpi', size: '96x96' ],
[ variant: 'xxxhdpi', size: '128x128']
].each {
item ->
task( "buildIcons${item.variant.capitalize()}", type: com.eowise.imagemagick.tasks.Magick) {
convert './app/src/main/svgResources', { include '*.svg' }
into "./app/src/main/res/drawable-${item.variant}"
actions {
-background('none')
inputFile()
-resize(item.size)
outputFile { filename, extension -> "${filename}.png" }
}
}
}
}
调整 SVG 资源和应用模块的路径。
现在你可以运行
- ./gradlew svgToPNG
您将为每个可绘制类别获得一个任务。
- buildIconsHdpi buildIconsMdpi buildIconsXhdpi buildIconsXxhdpi buildIconsXxxhdpi
运行 全部,您应该会在给定的可绘制文件夹下看到新生成的资源
快乐生成!
情况: 我从设计师那里得到了 SVG 文件。
图标字体在标准 Android 组件中不容易使用。
所以我需要所有我支持的尺寸的可绘制对象
一切都应该通过 Gradle 实现自动化。
已用:
我发现并使用了这个不错的插件 https://github.com/eowise/gradle-imagemagick
不幸的是,它不是开箱即用的。 我总是从 gradle 得到 "No such file or directory"。 无法找到插件使用的 ImageMagick 转换工具。
直接从 shell 开始,没有 gradle 生成的转换调用正在运行。
最后我为我修复了它,我会把它写下来作为一个捷径。
安装: 从 shell
执行- 酿造更新
- brew 安装 imageMagick
- brew 安装 librsvg
设置:
设置 PATH 变量对我不起作用。我不得不将imageMagick转换工具的安装路径写到/etc/launchd.conf 我在这里找到了信息:[https://serverfault.com/questions/16355/how-to-set-global-path-on-os-x][1]
再次shell:
- sudo touch /etc/launchd.conf
- sudo nano /etc/launchd.conf
添加这一行:
- setenv 路径/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
您可以查看 convert 的安装位置。在 shell 中输入 "which convert"。现在是 /usr/local/bin
保存修改后laundchd.conf。
重启
Gradle的配置:
将以下代码片段添加到全局 build.gradle 脚本中。
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.eowise:gradle-imagemagick:0.4.0'
}
}
task svgToPNG {
[
[ variant: 'mdpi', size: '32x32' ],
[ variant: 'hdpi', size: '48x48' ],
[ variant: 'xhdpi', size: '64x64' ],
[ variant: 'xxhdpi', size: '96x96' ],
[ variant: 'xxxhdpi', size: '128x128']
].each {
item ->
task( "buildIcons${item.variant.capitalize()}", type: com.eowise.imagemagick.tasks.Magick) {
convert './app/src/main/svgResources', { include '*.svg' }
into "./app/src/main/res/drawable-${item.variant}"
actions {
-background('none')
inputFile()
-resize(item.size)
outputFile { filename, extension -> "${filename}.png" }
}
}
}
}
调整 SVG 资源和应用模块的路径。
现在你可以运行 - ./gradlew svgToPNG
您将为每个可绘制类别获得一个任务。
- buildIconsHdpi buildIconsMdpi buildIconsXhdpi buildIconsXxhdpi buildIconsXxxhdpi
运行 全部,您应该会在给定的可绘制文件夹下看到新生成的资源
快乐生成!