5

我找不到任何方法来检索表示字符串的 Path 对象。它存在吗?必要点的列表就足够了,但我想,在内部,使用了一条路径。

例如在 GDI+ 中有:

GraphicsPath p = new GraphicsPath(); 
p.AddString("string");

从那里可以访问和修改“绘制的字符串”的任何点。

PS:我的意思不是沿着路径绘制文本。

4

1 回答 1

9

我花了很长时间解决这个问题(在 OpenGL 中绘制矢量化文本)并且不得不深入挖掘 libSkia 源代码。结果很简单:

实际上,canvas 在内部使用路径,它使用 SkPaint 的getTextPath()方法将文本转换为矢量路径。幸运的是,它在公共 API 中的 Java 端公开为android.graphics.Paint.getTextPath(). 之后,您可以使用android.graphics.PathMeasure.

不幸的是,您无法阅读确切的绘图命令,但您可以使用类似二等分的方法对曲线进行非常接近的采样。

于 2013-03-12T22:53:15.307 回答