SVG(SVG概述、SVG图片使用、SVG动画使用实例

1、SVG概述

SVG(Scalable Vector Graphics) : 可缩放矢量图形,使用 XML 格式定义图像。

优势:

SVG是矢量图形文件,无限放大不失真。

可以用CSS样式来自由定义图标颜色,比如颜色/尺寸等效果。

所有的SVG可以全部在一个文件中,节省HTTP请求 。

使用SMIL、CSS或者是javascript可以制作充满灵性的交互动画和滤镜效果。

由于SVG也是一种XML节点的文件,所以可以使用gzip的方式把文件压缩到很小。

缺点:对CPU消耗比较,图片越大,绘制占用的CUP资源越多。官方建议不超过200dp*200dp

2、SVG图片使用

Android studio提供了svg图片格式转换成代码的工具:

 

步骤1

 

 

步骤2

 

生成了xml文件

看到生成的一堆代码,是不是一脸懵逼,特别是pathData命令,一堆字母数字小数点,不用管它,只要了解个大概,就知道怎么玩了,反正他是生成的,我们只追求高效的工作效率,但是至少需要知道大概意思,不要一直懵逼下去:

Path指令解析如下所示:

1、支持的指令:

M = moveto(M X,Y) :将画笔移动到指定的坐标位置

L = lineto(L X,Y) :画直线到指定的坐标位置

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):弧线

Z = closepath():关闭路径

注意:如果还有不了解贝塞尔曲线的,可以专门去学习一下,我这里不啰嗦。

2、使用原则:

坐标轴为以(0,0)为中心,X轴水平向右,Y轴水平向下

所有指令大小写均可。大写绝对定位,参照全局坐标系;小写相对定位,参照父容器坐标系

指令和数据间的空格可以省略

同一指令出现多次可以只用一个

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值