这里我们使用使用Vector ,表示的是一个矢量图,矢量图即不管放大还是缩小都不会影响图片质量。
Vector属性:
width:图形的实际宽度
height:图形的实际长度
viewportHeight:画布的长度
viewportWidth:画布的宽度
path就是矢量图的内容了
fillColor:填充颜色
pathData:矢量图形数据
pathData中的内容就是图形的数据了,和android中的Path相似而且简单很多,其中字母为语法 数字即为坐标或者长度,下面即pathData的语法。
M = moveto(M X,Y) :将画笔移动到指定的坐标位置
H = horizontal lineto(H X):画水平线到指定的X坐标位置
V = vertical lineto(V Y):画垂直线到指定的Y坐标位置
L = lineto(L X,Y);已两点画一条直线(这里的X,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 xmlns:android="http://schemas.android.com/apk/res/android"
android:width="@dimen/lengthSize_20dp"
android:height="@dimen/lengthSize_40dp"
android:viewportHeight="400"
android:viewportWidth="200">
<group android:name="triableGroup">
<path
android:name="triangle"
android:fillColor="@color/color_8E8E8E"
android:pathData="m 100,200 l 40,-40 0,80 z" />
</group>
</vector>
效果:
坐标点同android画布的坐标是一样的即左上角为(0,0)X轴正方先向右,Y轴正方向向下。