将矢量路径移动到 Android 中的固定位置
Move Vector Path to Fixed Position in Android
我已经为 Android 应用程序创建了一个自定义视图,并希望它在相对于视图父级的特定点显示矢量图。在大多数情况下,听起来 path.transform(matrix)
或 path.offset(x, y)
会起作用。但是,我创建的视图是动画的;如果我使用 offset
或 transform
,每次视图渲染时(将路径绘制到视图的 canvas 上),矢量路径将自身推得更远,最终漂移到边界之外。
有什么方法可以在向量路径上设置固定(非相对)位置,以便向量连续设置到同一位置?
我已经尝试跟踪位置是否已设置(如果已设置则不设置),但由于动画可能是多线程的,条件尚未设置为真第二帧运行的时间。
现在视图顶部的路径如下所示:
随着蓝色进度指示器变高,矢量路径下降(我将偏移量设置为 (0, 0.5f)
以演示移动,这样它就不会立即出界),但应该固定在视图底部。下面是期望的结果:
在@pskink 的帮助下(见上面的评论),我们发现解决方案是 offset
的重载。我原来是用path.offset(x, y)
,直接变换path
。使用 path.offset(x, y, modifiedPath)
,其中 modifiedPath
是一个新的 Path
,创建原始 Path
的翻译克隆。这意味着原始 Path
永远不会移动,因此效果不会复合。
我已经为 Android 应用程序创建了一个自定义视图,并希望它在相对于视图父级的特定点显示矢量图。在大多数情况下,听起来 path.transform(matrix)
或 path.offset(x, y)
会起作用。但是,我创建的视图是动画的;如果我使用 offset
或 transform
,每次视图渲染时(将路径绘制到视图的 canvas 上),矢量路径将自身推得更远,最终漂移到边界之外。
有什么方法可以在向量路径上设置固定(非相对)位置,以便向量连续设置到同一位置?
我已经尝试跟踪位置是否已设置(如果已设置则不设置),但由于动画可能是多线程的,条件尚未设置为真第二帧运行的时间。
现在视图顶部的路径如下所示:
随着蓝色进度指示器变高,矢量路径下降(我将偏移量设置为 (0, 0.5f)
以演示移动,这样它就不会立即出界),但应该固定在视图底部。下面是期望的结果:
在@pskink 的帮助下(见上面的评论),我们发现解决方案是 offset
的重载。我原来是用path.offset(x, y)
,直接变换path
。使用 path.offset(x, y, modifiedPath)
,其中 modifiedPath
是一个新的 Path
,创建原始 Path
的翻译克隆。这意味着原始 Path
永远不会移动,因此效果不会复合。