将矢量路径移动到 Android 中的固定位置

Move Vector Path to Fixed Position in Android

我已经为 Android 应用程序创建了一个自定义视图,并希望它在相对于视图父级的特定点显示矢量图。在大多数情况下,听起来 path.transform(matrix)path.offset(x, y) 会起作用。但是,我创建的视图是动画的;如果我使用 offsettransform,每次视图渲染时(将路径绘制到视图的 canvas 上),矢量路径将自身推得更远,最终漂移到边界之外。

有什么方法可以在向量路径上设置固定(非相对)位置,以便向量连续设置到同一位置?

我已经尝试跟踪位置是否已设置(如果已设置则不设置),但由于动画可能是多线程的,条件尚未设置为真第二帧运行的时间。

现在视图顶部的路径如下所示:

随着蓝色进度指示器变高,矢量路径下降(我将偏移量设置为 (0, 0.5f) 以演示移动,这样它就不会立即出界),但应该固定在视图底部。下面是期望的结果:

在@pskink 的帮助下(见上面的评论),我们发现解决方案是 offset 的重载。我原来是用path.offset(x, y),直接变换path。使用 path.offset(x, y, modifiedPath),其中 modifiedPath 是一个新的 Path,创建原始 Path 的翻译克隆。这意味着原始 Path 永远不会移动,因此效果不会复合。