Android VectorDrawable SVG矢量图 xml格式

一个VectorDrawable示例

<vector xmlns:android=http://schemas.android.com/apk/res/android//命名空间
    android:width="24dp" //在设备上显示的实际宽度
    android:height="24dp" //在设备上显示的实际高度
    android:viewportWidth="48.0"//透视窗口宽度,与path直接相关
    android:viewportHeight="48.0"//透视窗口高度,与path直接相关

>
    <path //路径1
        android:fillColor="#ffffff"//路径颜色为白色
        android:pathData="M8.0,19.994l32.0,0.0l0.0,8.0l-32.0,0.0z"//指令序列绘制路径(引用SVG标准)

/>
    <path //路径2
        android:fillColor="#ffffff"
        android:pathData="M0.0,32.0l32.0,0.0l0.0,7.979l-32.0,0.0z"/>
    <path
        android:fillColor="#ffffff"
        android:pathData="M16.0,8.0l32.0,0.0l0.0,8.0l-32.0,0.0z"/>
</vector>

VectorDrawable的作用等同于png,默认放在res/drawable路径下

 

什么是SVG

SVG 是使用 XML 来描述二维图形和绘图程序的语言。

SVG 指可伸缩矢量图形 (ScalableVector Graphics)

SVG 用来定义用于网络的基于矢量的图形

SVG 使用 XML 格式定义图形

SVG 图像在放大或改变尺寸的情况下其图形质量不会有所损失

SVG 是万维网联盟的标准

SVG 与诸如 DOM 和 XSL 之类的 W3C 标准是一个整体

SVG1.1 于 2003 年 1 月 14 日成为 W3C 推荐标准。

 

SVG的优势

SVG 可被非常多的工具读取和修改(比如记事本)

      Android系统下可以方便地修改矢量图的颜色、长宽等

SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。

SVG 是可伸缩的

SVG 图像可在任何的分辨率下被高质量地打印

    Android系统下矢量图无需创建多个分辨率的图片)

SVG 可在图像质量不下降的情况下被放大

SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)

SVG 可以与 Java 技术一起运行

SVG 是开放的标准

SVG 文件是纯粹的 XML

 

VectorDrawable矢量图采用的标准相当于是SVG标准的子集,有些操作并不在android系统中得到支持。


来源:

SVG标准:

http://www.w3school.com.cn/svg/svg_intro.asp

http://www.w3.org/TR/SVG11/paths.html#PathData

Vector Drawable官网:

https://developer.android.com/training/material/drawables.html

https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html

https://developer.android.com/reference/android/graphics/drawable/AnimatedVectorDrawable.html

Vector、PNG、BMP等格式转换和查看工具:

http://inloop.github.io/svg2android/

AndroidStudio/AI(Adobe Illustrator)/CorelDRAW/inkscape/CAD

 

 

你可能感兴趣的:(Android VectorDrawable SVG矢量图 xml格式)