如何创建android:pathData?

Chi*_*dog 13 android android-studio

所以我将需要在我的应用程序中使用路径数据,有没有办法将您已有的图像转换为路径数据?

或唯一的方法是使用Photoshop等自己实际计算所有像素.?

Rah*_*rma 29

矢量图像android中的PathData是矢量图形程序的脚本.作为高优先级,它不是完全干净且人类可读的代码.有关如何构建pathData的简要说明如下:

在脚本中:

M或m(X,Y)代表MoveTo:将光标移动到位置,大写M是绝对的,小写m是相对移动命令后跟X,Y坐标.

L或l(X,Y)表示LineTo:从当前位置到X,Y指定的位置绘制一条线.大写表示绝对坐标,小写表示相对坐标.

H或h(X)代表Horizo​​ntalLineTo:绘制从当前光标位置到X指定位置的水平线.如果命令后面有多个X坐标,则将其视为折线.Y坐标保持不变.

V或v(Y)代表VerticalLineTo:绘制从当前光标位置到Y指定位置的垂直线.如果命令后面有多个Y坐标,则将其视为折线.X坐标保持不变.

Z或z ClosePath:从光标的当前位置到路径的起​​始位置绘制一条线.没有任何参数.

曲线的C(绝对)c(相对):绘制从当前点到(x,y)的立方贝塞尔曲线,使用(x1,y1)作为曲线开头的控制点,(x2,y2)为曲线末端的控制点.C(大写)表示将遵循绝对坐标; c(小写)表示将遵循相对坐标.可以指定多组坐标来绘制多面体.在命令结束时,新的当前点成为polybézier中使用的最终(x,y)坐标对. 如何使用C的图像

S(绝对值)s(相对)用于缩写/平滑曲线到:绘制从当前点到(x,y)的三次贝塞尔曲线.假设第一个控制点是前一个命令相对于当前点的第二个控制点的反射.(如果没有上一个命令或前一个命令不是C,c,S或s,则假设第一个控制点与当前点重合.)(x2,y2)是第二个控制点(即曲线末端的控制点).S(大写)表示将遵循绝对坐标; s(小写)表示将遵循相对坐标.可以指定多组坐标来绘制多面体.在命令结束时,新的当前点成为polybézier中使用的最终(x,y)坐标对.

有关更基本的想法,请参阅此链接https://medium.com/@ali.muzaffar/understanding-vectordrawable-pathdata-commands-in-android-d56a6054610e#.g4gbz1r5p

这也是一个很好的参考. 链接

  • 超级有帮助和解释。谢谢你! (2认同)

Lew*_*ary 26

假设您正在引用VectorDrawable的pathData元素,如果您有.svg格式化的图像,则可以轻松转换它们.

右键单击drawable文件夹,然后单击New> Vector Asset并导入本地SVG文件,直接在Android Studio中执行此操作:

在此输入图像描述

或者使用其他转换器,如svg2android(您可能会发现这适用于Android Studio无法转换的文件).

如果您不想要VectorDrawable并且只想获取pathData,则可以在文本编辑器中打开SVG.如果您拥有的图像不是矢量格式,那么事情就会变得更加困难.