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

cot*_*aws 36 svg android android-vectordrawable

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

我发现了一个将SVG转换为VectorDrawable xml格式的工具:http://inloop.github.io/svg2android/ 但它要求SVG 只使用"path".

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

小智 44

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

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

该向导从SVG文件生成XML.


Pau*_*eau 15

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

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

此链接可能有所帮助.

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

  • 我也增加了对其他形状的支持:http://inloop.github.io/svg2android/ (7认同)

A-s*_*ent 13

只需使用SVG到VectorDrawable Converter或其在线版本.这是一个SVG图像批量转换为Android VectorDrawable XML资源文件.

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

  • 我和另一个开发人员都无法使该工具正常工作并提供良好的输出,抱歉.我使用"svg2android"工具取得了巨大的成功 - http://inloop.github.io/svg2android/ (6认同)

Dom*_*Dom 12

将所有内容转换为路径

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

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

  2. 在选择了对象并选择时<circle>,Compound Paths通过右键单击转换任何形状路径(例如)Make Compound Path.

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


优化SVG

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

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


将优化的SVG转换为Vector Drawable

将下载的SVG下载到SVG2Android中,它将为您提供所需的内容.