引
今天视频处理中碰到一些简单图片的vector绘制方案
调研结果:
效果:
优点:Vector与PNG文件相比,能极大地缩小文件占用空间;
弱势:
- 兼容性处理起来需要花费一些心思;
- 复杂图片不适合运用vector绘制,一个是初始化效率,第二个是重复使用时bitmap在GPU中会有缓存,而vector没有;
- 需要额外的一些辅助工具协作生成path;
例注:
- 使用:
需要在Gradle 中添加:android.defaultConfig域
1 vectorDrawables.useSupportLibrary = true
- XML attributes:
1
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()
参考:(涵盖由头、Vector语法、转换工具、原理、兼容处理、性能考量等方面知识,良心之作)
Android Vector曲折的兼容之路
关注公众号“夕识”,雕刻时光,雕刻思维