引
今天視頻處理中碰到一些簡單圖片的vector繪制方案
調(diào)研結(jié)果:
效果:
優(yōu)點:Vector與PNG文件相比端逼,能極大地縮小文件占用空間;
弱勢:
- 兼容性處理起來需要花費一些心思寄猩;
- 復雜圖片不適合運用vector繪制,一個是初始化效率骑疆,第二個是重復使用時bitmap在GPU中會有緩存田篇,而vector沒有;
- 需要額外的一些輔助工具協(xié)作生成path箍铭;
例注:
- 使用:
需要在Gradle 中添加:android.defaultConfig域
vectorDrawables.useSupportLibrary = true```
2. XML attributes:
```java
viewportHeight \ viewportWidth```
劃分的比例大胁醇怼(圖片中的例子:36dp大小的圖像劃分成24份,Path中的坐標建立在劃分后的坐標系統(tǒng)之上)
`意義-->將大小與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語法兽赁、轉(zhuǎn)換工具、原理冷守、兼容處理刀崖、性能考量等方面知識,良心之作)
[Android Vector曲折的兼容之路](http://www.reibang.com/p/e3614e7abc03)
***
關(guān)注公眾號“夕識”拍摇,雕刻時光亮钦,雕刻思維
![](http://upload-images.jianshu.io/upload_images/1481332-c461a8ddbf8cf08e.jpeg?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)