这些字符是什么意思' M'' L'' c'' h'' z&#39 ;在Android矢量文件中

时间:2017-10-24 07:49:16

标签: android

我使用android studio将.svg文件导入到矢量可绘制文件,然后IDE在Folder:res / drawable中创建了一个xml文件。
     我认为android会绘制像Canvas.drawPath这样的可绘制文件。并且 android:pathData 的值几乎就是路径的点。但我不知道价值的含义是什么。
     我来宾:

  

M:moveTo   L:lineTo

Android vector中这些字符的含义是什么:

<path
            android:fillColor="#FF000000"
            android:pathData="M11,9h2L13,6h3L16,4h-3L13,1h-2v3L8,4v2h3v3zM7,
18c-1.1,0 -1.99,0.9 -1.99,2S5.9,22 7,22s2,-0.9 2,-2 -0.9,-2 -2,-2zM17,18c-1.1,
0 -1.99,0.9 -1.99,2s0.89,2 1.99,2 2,-0.9 2,-2 -0.9,-2 -2,
-2zM7.17,14.75l0.03,-0.12 0.9,-1.63h7.45c0.75,0 1.41,-0.41 1.75,-1.03l3.86,
-7.01L19.42,4h-0.01l-1.1,2 -2.76,5L8.53,11l-0.13,-0.27L6.16,6l-0.95,-2 -0.94,
-2L1,2v2h2l3.6,7.59 -1.35,2.45c-0.16,0.28 -0.25,0.61 -0.25,0.96 0,1.1 0.9,
2 2,2h12v-2L7.42,15c-0.13,0 -0.25,-0.11 -0.25,-0.25z"/>

1 个答案:

答案 0 :(得分:2)

以下是绘制路径的矢量绘制参数的基本理解:

M or m (X,Y)+

moveto:将光标移动到位置,大写是绝对的,小写是相对的 moveto命令后跟X,Y坐标。 M命令后面可以有多组坐标,这些坐标被视为隐式lineto命令。

Z or z

closepath:从光标的当前位置到路径的起​​始位置绘制一条线。没有任何参数。

L or l (X,Y)+

lineto:从当前位置到X,Y指定的位置绘制一条线。大写表示绝对坐标,小写表示相对坐标。您可以在lineto命令后面有多组坐标。如果要指定多组坐标,则表示您正在创建折线(由多个字符串线组成的形状)。

H or h (X)+

水平线到从当前光标位置绘制一条水平线到X指定的位置。如果命令后面有多个X坐标,则将其视为折线。 Y坐标保持不变。大写字母H是绝对坐标,小写字母h是相对坐标。

V or v (Y)+

垂直lineto 绘制从当前光标位置到Y指定位置的垂直线。如果命令后面有多个Y坐标,则将其视为折线。 X坐标保持不变。大写字母V是绝对坐标,小写字母v是相对坐标。

<强>参考: https://medium.com/@ali.muzaffar/understanding-vectordrawable-pathdata-commands-in-android-d56a6054610e