【Android】VectorDrawable介绍
2017-03-07 本文已影响35人
8c3c932b5ffd
引
今天视频处理中碰到一些简单图片的vector绘制方案
调研结果:
效果:
vector paint eg.png优点:Vector与PNG文件相比,能极大地缩小文件占用空间;
弱势:
- 兼容性处理起来需要花费一些心思;
- 复杂图片不适合运用vector绘制,一个是初始化效率,第二个是重复使用时bitmap在GPU中会有缓存,而vector没有;
- 需要额外的一些辅助工具协作生成path;
例注:
- 使用:
需要在Gradle 中添加:android.defaultConfig域
vectorDrawables.useSupportLibrary = true```
2. XML attributes:
```java
viewportHeight \ viewportWidth```
划分的比例大小(图片中的例子:36dp大小的图像划分成24份,Path中的坐标建立在划分后的坐标系统之上)
`意义-->将大小与path分离`
***
Path指令:
M = moveto(M X,Y)
L = lineto(L X,Y)
H = horizontal lineto(H X)
V = vertical lineto(V 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()
***
工具:
[to vector](http://inloop.github.io/svg2android/)
[SVG editor](http://editor.method.ac/)
***
>参考:(涵盖由头、Vector语法、转换工具、原理、兼容处理、性能考量等方面知识,良心之作)
[Android Vector曲折的兼容之路](http://www.jianshu.com/p/e3614e7abc03)
***
关注公众号“夕识”,雕刻时光,雕刻思维
![](https://img.haomeiwen.com/i1481332/c461a8ddbf8cf08e.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)