SVG
SVG全称是Scalable Vector Graphics (可缩放矢量图),SVG是矢量图,与其对应的是Bitmap即位图;
Google在Android 5.0中增加了SVG支持,而对于5.0以下,可以引入com.android.support:appcompat-v7:23.4.0及以上版本进行支持;Vector标签适用于android2.1以上的所有系统以显示SVG图像,而与SVG动画相关的部分,由于要用到animator(android 3.0引入),所以只支持APP 11以上版本;
Bitmap:由一个个像素点组成,当图片放大到一定大小时,会出现马赛克;
SGV:由一个个点组成,经过数学计算利用直线和曲线绘制而成,无论怎么放大,都不会出现马赛克现象
SVG优点:
- SVG使用XML格式定义图形,可以被许多工具读取和修改
- 由点来存储,由计算机根据点绘图,不会失真,无须根据分辨率适配多套图标
- 占用空间明显比Bitmap小
- 可以转化为Path路径,与Path动画相结合,形成更丰富的动画
Android中SVG
标准SVG:支持许多标签,比如rect标签(绘制矩形)、circle标签(绘制圆形)、line标签、polyline(绘制折线段)、ellipse(椭圆)、polygon(多边形)、path(路径)等
Android中没有对原生SVG图像语法进行支持,以一种简化的方式对SVG进行兼容,也就是使用它的path标签,就可以实现SVG中的其他所有标签;
Android中使用标签定义SVG矢量图,并放在res/drawable/目录下,如:
<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="#FF000000"
android:pathData="M6,18c0,0.55 0.45,1 1,1h1v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L11,19h2v3.5c0,0.83 0.67,1.5 1.5,1.5s1.5,-0.67 1.5,-1.5L16,19h1c0.55,0 1,-0.45 1,-1L18,8L6,8v10zM3.5,8C2.67,