情况: 我从设计师那里得到了 SVG 文件。
图标字体在标准 Android 组件中不容易使用。
所以我需要所有我支持的尺寸的可绘制对象
一切都应该通过 Gradle 自动化。
用过的:
我发现并使用了这个不错的插件 https://github.com/eowise/gradle-imagemagick
不幸的是,它不是开箱即用的。 我总是从 gradle 得到“没有这样的文件或目录”。 无法找到插件使用的 ImageMagick 转换工具。
直接从没有 gradle 的 shell 生成的转换调用正在工作。
最佳答案
最后我为我修复了它,我会把它写下来作为一个捷径。
安装: 从外壳执行
- 酿造更新
- 酿造安装 imageMagick
- 酿造安装 librsvg
设置:
设置 PATH 变量对我不起作用。我不得不将imageMagick转换工具的安装路径写入/etc/launchd.conf 我在这里找到了信息:[ https://serverfault.com/questions/16355/how-to-set-global-path-on-os-x][1]
再次外壳:
- sudo touch/etc/launchd.conf
- sudo nano/etc/launchd.conf
添加这一行:
- setenv PATH/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin
您可以检查 convert 的安装位置。在 shell 中输入“which convert”。现在是/usr/local/bin
保存修改后的laundchd.conf。
重启
Gradle的配置:
将以下代码 fragment 添加到全局 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
全部运行它们,您应该会在给定的可绘制文件夹下看到新生成的资源
快乐生成!
关于android - 在 Mac OS 上使用 gradle 从 SVG for Android 生成可绘制对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30351549/