在AndroidStudio 3.6中批量将SVG导入为可绘制对象(如何实现)?

16
我有很多(目前为止有208个)SVG文件,我通过编程将它们转换成.imageset资源供我的iOS应用程序使用。我希望以某种方式也能在Android上做到同样的效果。
使用Studio菜单中的New>>Vector Asset取得的结果我还是挺满意的。但我真的不想这么做208次,并且当SVG文件被更新时,还需要更多次的处理。
有没有一种方式可以通过脚本自动导入此过程?
我不想在其他网站上批量处理它们。如果可能的话,我想使用当前的工具或者一个完全独立的命令行工具。
3个回答

78

Android Studio 3.4版本中新增了资源管理器(Resource Manager)工具,可以批量导入SVG文件并将它们转换为矢量图形(drawables)。

  1. 工具资源管理器
  2. 选择 Drawable 标签页
  3. 点击左上角的 + 按钮
  4. 选中 导入Drawables

在这里,您可以一次性选择要导入的所有文件。 更多详细信息请参见此处


3
绝对应该是最佳答案!直接集成到Android Studio中,无需使用任何第三方工具。谢谢! - baskInEminence
我越使用Android Studio,就越发现我的许多旧的第三方工具现在都已经内置了。 - user-44651

1
你可以下载这个jar文件:Svg2VectorAndroid-1.0.1.jar 只需运行以下命令:
java -jar C:\Users\Administrator\Downloads\Svg2VectorAndroid-1.0.1.jar C:\Users\Administrator\Desktop\your_svg_folder

希望它能为您工作。

这个项目为什么不是开源的呢?或者说它已经是了吗?虽然它能够工作,但我并不喜欢从互联网上下载随意的二进制文件... - Travis Griggs
对于其他遇到这个问题的人,我发现一个重要的事情是确保你的可绘制文件名以 lower_case_under_score_names 的格式结尾。如果不是这种格式,AndroidStudio 会抱怨一些奇怪的东西。 - Travis Griggs
我发现虽然这个程序可以转换一些图片,但很多图片并没有被正确地转换。有些部分被省略了。程序没有给出任何错误信息来提示存在问题,只能通过视觉检查来发现遗漏的部分。其中一些转换失败的图片使用交互式的“新建>>矢量资源”方法导入时却没有问题,因此我认为这个库不如当前的库好,尽管它可以进行批处理。 - Travis Griggs
@TravisGriggs 这是一个开源项目,你只需要截断URL即可访问Github仓库 https://github.com/ravibhojwani86/Svg2VectorAndroid - Grishka

-1

将以下内容添加到您的gradle文件中

android {
defaultConfig {
    vectorDrawables.useSupportLibrary = true
}}
dependencies {
implementation 'com.android.support:appcompat-v7:23.2.0'}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接