为什么我必须为矢量动画绘图使用一个组?

Why do I have to use a group for vector animated drawable?

我不太确定为什么必须为动画矢量指定一个组作为目标。它看起来非常冗余,因为使用的对象动画师已经有一条路径从和一条路径到。因此,对象动画师不应该已经知道如何转换矢量可绘制对象吗?如果是这样,为什么我仍然必须将组名称设置为目标?

一个 VectorDrawable 可以包含多个路径和组,一个 Animated Vector Drawable 可以同时使用多个 Object Animators 来为一个 VectorDrawable 的不同部分设置动画。

为实现这种灵活性和范围,必须指定每个动画师要定位的 VectorDrawable 的哪一部分。

对于许多类型的动画属性,比如颜色变化或旋转,除非您明确指定,否则可能无法猜出您打算更改 VectorDrawable 的哪一部分。

你可能会说,如果你正在为 pathData 设置动画,那么你试图更改的部分应该很明显,但对于 Android 团队来说,尝试设计一个解决方案似乎并不值得在确实是异常时检测到它,最好保持一致。

此外,您完全没有理由不能使用 VectorDrawable 绘制多条线,这些线使用完全相同的 pathData(看起来就像只有一条线),然后分别对其进行动画处理以产生特定效果。在这种情况下,您需要指定不同的目标,因此即使使用 pathData,您也不能总是推断出预期的目标是什么。