我找不到任何方法来检索表示字符串的 Path 对象。它存在吗?必要点的列表就足够了,但我想,在内部,使用了一条路径。
例如在 GDI+ 中有:
GraphicsPath p = new GraphicsPath();
p.AddString("string");
从那里可以访问和修改“绘制的字符串”的任何点。
PS:我的意思不是沿着路径绘制文本。
我找不到任何方法来检索表示字符串的 Path 对象。它存在吗?必要点的列表就足够了,但我想,在内部,使用了一条路径。
例如在 GDI+ 中有:
GraphicsPath p = new GraphicsPath();
p.AddString("string");
从那里可以访问和修改“绘制的字符串”的任何点。
PS:我的意思不是沿着路径绘制文本。
我花了很长时间解决这个问题(在 OpenGL 中绘制矢量化文本)并且不得不深入挖掘 libSkia 源代码。结果很简单:
实际上,canvas 在内部使用路径,它使用 SkPaint 的getTextPath()
方法将文本转换为矢量路径。幸运的是,它在公共 API 中的 Java 端公开为android.graphics.Paint.getTextPath()
. 之后,您可以使用android.graphics.PathMeasure
.
不幸的是,您无法阅读确切的绘图命令,但您可以使用类似二等分的方法对曲线进行非常接近的采样。