<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="132dp"
android:height="132dp"
android:viewportHeight="132.0"
android:viewportWidth="132.0">
<path
android:pathData="M50,2 L80.813,2 L80.813,130 L50,130 L50,2 Z"
android:strokeColor="#e33e2b"
android:strokeWidth="8" />
</vector>
vector:
在希望加入 SVG 文件的地方右键一下,然后 new -> Vector Asset :
点一下 Vector Asset ,会弹出另一个新的弹窗,它是长这样的:
图中有两个白色框框起来的部位,上面那个是一个单选框,可以很清晰的知道选第一个是选取 Material Icon (没错,就是这么贴心,AS 自带所有 MD 图标的 SVG 文件),第二个是选取本地 SVG 文件,选好第一个框之后再在下面的白框里面选择具体的哪一个文件——这样一来,我们的目的就完成了,我们成功的在 AS 里面得到了一个 SVG 的 XML 文件。
在这里可能很多同学会有一个问题:刚才说了如何将本地的 SVG 文件导入到 AS 中,那么我们又怎么获得本地的 SVG 文件呢?讲道理,这个问题不应该是我们考虑的,这个东西应当是美工把制作好的图给我们,然后我们直接使用就可以了。但是有的时候我们自己做小东西并没有专业的美工怎么办呢?要么你可以自己去学学 AI 或者 GIMP 等软件的使用方法, 用它们来制作图形然后导成 SVG ,当然这样的话学习成本有点高——不过没关系,我们还有低配版的实现方式:Method Draw。这是一个在线制作矢量图的网站,可以很方便的将在上面制作的图形导出成 SVG 文件,学习成本相当低,而且能完成我们大部分的需求,总之我觉得还挺好用的。
如果前面的工作都完成了的话,我们应当是已经有了一个 SVG 的 XML 文件,接下来理所当然的是如何在我们需要的地方使用它了。那么怎么使用呢?
我想说的是,接下来你完全可以把它当成我们引入项目的一张图片来用。比如:
上图是直接在布局文件中直接引用 SVG 的 XML 文件,代码中的 ic_android_black_24dp 就是已经写好的 SVG 文件。可以看到,直接把它当做一张普通的图片来使用就可以了。当然,我们也可以在 Java 代码里面来使用 SVG 文件,像下面这样:
到这里我们就已经可以在 Android 中使用 SVG 来作为图片资源了,这样一来不仅 Apk 包的体积得到了大大的减小,我们的图片也具有了任意拉伸而不失真的特性,而且我们也再也不用非常痛苦的去搞图片改名称分包了。