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) :画直线到指定的坐标位置
svg图形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轴⽔平向下
所有指令⼤⼩写均可。⼤写绝对定位,参照全局坐标系;⼩写相对定位,参照⽗容器坐标系指令和数据间的空格可以省略
同⼀指令出现多次可以只⽤⼀个

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。