如何从 Illustrator(或类似工具)创建 Android VectorDrawables?

How to create Android VectorDrawables from Illustrator (or similar tool)?

如果我在像 Illustrator 这样的程序中有一个矢量图像,我怎样才能得到正确的格式供 Android 的 VectorDrawable 框架使用?

我找到了将 SVG 转换为 VectorDrawable xml 格式的工具:http://inloop.github.io/svg2android/ 但它要求 SVG 仅使用 "path"。

知道如何输出这样的文件吗?

该工具目前似乎只支持 <path> 个元素。例如,它不支持 <rect><circle>

如果您在绘图中使用这样的图元,则需要转换它们。我忘记了您需要使用的确切选项,但它可能类似于 "Convert to path".

这 link 可能会有所帮助。

https://graphicdesign.stackexchange.com/questions/15475/convert-primitive-to-path-using-svg-format-in-illustrator

将一切转化为路径

在将 AI 项目文件保存为 SVG 之前,请确保:

  1. 将所有路径转换为轮廓,使用 Object > Expand...

  2. 在选中 object/s 并选择 Make Compound Path.

完成后,SVG 中的每个形状都应该是 <path>


优化 SVG

当我尝试使用问题中提到的应用程序将中等复杂度的 SVG 转换为矢量可绘制对象时,我遇到了忘记某些部分的问题。我认为它一定与它的格式化方式有关,所以我决定使用 SVGOMG,一个 SVG 优化应用程序,将它剥离到最基本的部分。

使用 SVGOMG 或其他应用优化 SVG,然后下载文件。


将优化的 SVG 转换为矢量绘图

将下载的 SVG 放到 SVG2Android 中,它会给你想要的东西。

只需使用SVG to VectorDrawable Converter or its online version。这是 SVG 图像到 Android VectorDrawable XML 资源文件的批量转换器。

Link 指向自述文件,它提供了有关如何使用转换器的足够信息。

如果您使用的是 Android Studio,最好的方法是:

  • 右键单击您的 'drawable' 文件夹 > 新建 > 矢量资源
  • 单击 'Local SVG file' 导入您自己的 SVG 文件,或单击 'Material Icon' 使用提供的图标。
  • 将资源名称更改为您需要的名称。
  • 单击下一步并选择您的目标模块和资源目录。
  • 单击“完成”。

向导从您的 SVG 文件生成 XML。