SVG,Vector(一)

SVG,Vector(一)


  • 介绍
    SVG 意为可缩放矢量图形(Scalable Vector Graphics)。
    SVG 使用 XML 格式定义图像。

  • 优势
    使用 SVG 的优势在于:
    SVG 可被非常多的工具读取和修改(比如记事本)
    SVG 与 JPEG 和 GIF 图像比起来,尺寸更小,且可压缩性更强。
    SVG 是可伸缩的
    SVG 图像可在任何的分辨率下被高质量地打印
    SVG 可在图像质量不下降的情况下被放大
    SVG 图像中的文本是可选的,同时也是可搜索的(很适合制作地图)
    SVG 可以与 Java 技术一起运行
    SVG 是开放的标准
    SVG 文件是纯粹的 XML
    SVG 的主要竞争者是 Flash。

  • 对比
  • PNG:想要所有设备上的图片都能有最清晰的效果,就意味着每种dpi模式都必须提供一份对应尺寸的资源
  • SVG: 这方面矢量图存在明显的优势,它可以在表达清晰图片的同时,不增加文件体积。而且只要你不重新设计图片,就用不着再去适配高dpi模式,矢量图什么分辨率都可以自适应。
  • 性能
    SVG的效率如PNG好,因为它需要运行时的计算和对应平台的渲染绘制。内存来说,SVG好。CPU上SVG效率低。但是目前来说手机的短板不是cpu而是内存,
    PNG在开启硬件加速的设备上,绘制Bitmap一个非常快速的过程
    SVG并不是android支持的标准资源格式
  • Vector
  • 安卓中的SVG,相当于SVG的阉割版。
  • Vector图像刚发布的时候,支持Android 5.0+的,自从AppCompat 23.2之后,Vector可以使用于Android 2.1以上的所有系统,
  • 只需要引用com.android.support:appcompat-v7:23.2.0以上的版本就可以了。
  • 但是所谓的兼容也是个假的兼容,即低版本非真实使用SVG,而是生成PNG图片

  • Vector的优点

  • Vector Drawable相对于普通的Drawable来说,有以下几个好处:
    (1)Vector图像可以自动进行适配,不需要通过分辨率来设置不同的图片。
    (2)Vector图像可以大幅减少图像的体积,同样一张图,用Vector来实现,可能只有PNG的几十分之一。
    (3)使用简单,很多设计工具,都可以直接导出SVG图像,从而转换成Vector图像 功能强大。
    (4)不用写很多代码就可以实现非常复杂的动画 成熟、稳定,前端已经非常广泛的进行使用了。
  • Vector 语法简介
    通过使用它的Path标签,几乎可以实现SVG中的其它所有标签,虽然可能会复杂一点,
    但这些东西都是可以通过工具来完成的,所以,不用担心写起来会很复杂。
    (1)Path指令解析如下所示:
    M = moveto(M X,Y) :将画笔移动到指定的坐标位置,相当于 android Path 里的moveTo()
    L = lineto(L X,Y) :画直线到指定的坐标位置,相当于 android Path 里的lineTo()
    H = horizontal lineto(H X):画水平线到指定的X坐标位置
    V = vertical lineto(V Y):画垂直线到指定的Y坐标位置
    C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY):三次贝赛曲线
    S = smooth curveto(S X2,Y2,ENDX,ENDY) 同样三次贝塞尔曲线,更平滑
    Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY):二次贝赛曲线
    T = smooth quadratic Belzier curveto(T ENDX,ENDY):映射 同样二次贝塞尔曲线,更平滑
    A = elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y):弧线 ,相当于arcTo()
    Z = closepath():关闭路径(会自动绘制链接起点和终点)

  • Vector 使用流程
    1.可以使用SVG的编辑器来进行SVG图像的编写,例如:http://editor.method.ac/
    2.利用工具,转换基础的图像,如:http://inloop.github.io/svg2android/
    先用http://editor.method.ac/ 生成SVG图片,然后用http://inloop.github.io/svg2android/ 生成 VectorDrawable xml代码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值