36

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

我找到了一个将 SVG 转换为 VectorDrawable xml 格式的工具:http://inloop.github.io/svg2android/ 它要求 SVG 只使用“路径”。

任何想法如何输出这样的文件?

4

4 回答 4

47

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

  • 右键单击“可绘制”文件夹 > 新建 > 矢量资源
  • 单击“本地 SVG 文件”以导入您自己的 SVG 文件,或单击“材料图标”以使用提供的图标。
  • 将资源名称更改为您需要的任何名称。
  • 单击下一步并选择您的目标模块和 res 目录。
  • 单击完成。

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

于 2016-04-07T13:46:12.573 回答
14

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

如果您在绘图中使用这样的图元,则需要转换它们。我忘记了您需要使用的确切选项,但它可能类似于“转换为路径”。

此链接可能会有所帮助。

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

于 2015-01-06T03:16:14.507 回答
13

只需使用SVG 到 VectorDrawable 转换器或其在线版本。这是 SVG 图像到 Android VectorDrawable XML 资源文件的批量转换器。

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

于 2015-08-23T07:35:40.280 回答
12

将一切转换为路径

在将您的 AI 项目文件保存为SVG.

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

  2. 选择对象时,通过右键单击将任何形状路径(例如<circle>)转换为 ,然后选择。Compound PathsMake Compound Path

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


优化 SVG

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

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


将优化后的 SVG 转换为 Vector Drawable

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

于 2015-04-29T21:22:37.550 回答