一.背景
随着 Android 的碎片化越来越严重,适配成为一个开发中一个痛点。如果 UI 只切一套图,但是在一些特定机型上难免会出现模糊或者变形的情况,如果切多套不同分辨率的图,虽然能解决适配问题,但是造成安装包过大的问题,很多开发者都会为这个问题感到头疼。终于,Android 的 Vector 的出现,可以解决这个问题了。
二. Vector 是什么?
我们在了解Vector之前,我们必须先了解SVG。
SVG 全称是 Scalable Vector Graphics(可扩展矢量图形) ,是基于 XML 的矢量图像格式,它运行的时候才会去通过一些特定的语法和规则渲染绘制出图像,目前在网页上使用非常广泛使用,它最主要优点就是不会降低图片质量的前提下,可以适应所有分辨率屏幕,文件体积更可以直接用 编写 XML 来描绘图片,使图片具有交互功能。缺点就是因为是运行时才会去绘制,所以效率没有高。
了解完SVG,再去了解Vector Drawable就更简单了,因为 Vector 就是 Android 的 SVG 实现。Vector是Android 5.0 之后才出来的,不过从 AppCompat23.2 开始,Google开始支持在5.0版本以下使用Vector。Vector Drawable 并不是支持所有 SVG 的语法,但是支持的语法已经足够使用。
三.Vector 语法
因为 Vctor 是基于XML的,所以是用代码编写的。示例如下:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="24dp"
android:height="24dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor