VectorDrawable介绍


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

效果:

vector paint eg.png

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

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

例注:

  1. 使用:
    需要在Gradle 中添加:android.defaultConfig域
    1
    vectorDrawables.useSupportLibrary = true
  1. 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()


工具:
to vector
SVG editor


参考:(涵盖由头、Vector语法、转换工具、原理、兼容处理、性能考量等方面知识,良心之作)
Android Vector曲折的兼容之路


关注公众号“夕识”,雕刻时光,雕刻思维

Powered by KyleCe

Copyright © 2015 - 2019 KyleCe All Rights Reserved.

访客数 : | 访问量 :