【Android】VectorDrawable介绍


今天视频处理中碰到一些简单图片的vector绘制方案
调研结果:

效果:

【Android】VectorDrawable介绍_第1张图片
vector paint eg.png

优点:Vector与PNG文件相比,能极大地缩小文件占用空间;
弱势

  1. 兼容性处理起来需要花费一些心思;
  2. 复杂图片不适合运用vector绘制,一个是初始化效率,第二个是重复使用时bitmap在GPU中会有缓存,而vector没有;
  3. 需要额外的一些辅助工具协作生成path;

例注:

  1. 使用:
    需要在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)

***
关注公众号“夕识”,雕刻时光,雕刻思维
![](http://upload-images.jianshu.io/upload_images/1481332-c461a8ddbf8cf08e.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

你可能感兴趣的:(【Android】VectorDrawable介绍)