在Android 5.0支持了SVG图形,但是对于不常用SVG图形的我来说,还真不是怎么了解这个格式的图形。下面是我查阅一些资料找到的一些信息。
SVG是目前十分流行的图像文件格式了。是一种开放标准的矢量图形语言,使用SVG格式我们可以直接用代码来描绘图像,可以用任何文字处理工具打开svg图像,通过改变部分代码来使图像具有交互功能,并可以随时插入到HTML中通过浏览器(如火狐浏览器)来观看。使用SVG格式可让你设计激动人心的、高分辨率的Web图形页面。
与其他图像格式相比,使用 SVG 的优势在于:
SVG 可被非常多的工具读取和修改(比如记事本)
SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。
SVG 是可伸缩的(图片可无限放大而不失真)
SVG 图像可在任何的分辨率下被高质量地打印
SVG 可在图像质量不下降的情况下被放大
SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)
SVG 可以与 Java 技术一起运行
SVG 是开放的标准
SVG 文件是纯粹的 XML(可以直接用记事本打开),如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<!-- 由 Microsoft Visio, SVG Export 生成 点播起播.svg 播放流程图 -->
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:v="http://schemas.microsoft.com/visio/2003/SVGExtensions/" width="22.5984in" height="23.2283in"
viewBox="0 0 1627.09 1672.44" xml:space="preserve" color-interpolation-filters="sRGB" class="st26">
<v:documentProperties v:langID="2052" v:metric="true" v:viewMarkup="false">
<v:userDefs>
<v:ud v:nameU="msvNoAutoConnect" v:val="VT0(0):26"/>
</v:userDefs>
</v:documentProperties>
<style type="text/css">......</svg>
SVG 的主要竞争者是 Flash。
与 Flash 相比,SVG 最大的优势是与其他标准(比如 XSL 和 DOM)相兼容。而 Flash 则是未开源的私有技术。
因为SVG可以任意缩放而图像任保持清晰的特点,且在android里SVG是在运行时才进行渲染的,它会根据屏幕的dpi自动缩放到合适的大小,所以我们仅仅用一个SVG文件就可以代替多个不同dpi的drawable了!
SVG里还定义了一些基本的图形和效果,可以使用SVG制作动画效果。后续将进行讲解。