Add animation at run time

时间:2015-05-14 09:28:35

标签: android xml animation android-vectordrawable

I want to animate my AnimatedVectorDrawable at runtime without using .xml files. Actually I'm using .xml files same way as documentation's samples shows:

AnimatedVectorDrawable

中创建一个img元素

所以,我vector_drawable.xml包含<vector>,其中嵌套<group><path>定义了一个形状。

对于此向量,我animated_vector_drawable.xml包含<animated-vector>,其中android:animation<target>有关。

最后一步是使用rotation.xml

使用的<objectAnimator>定义动画文件animated_vector_drawable.xml

一切正常,但是当我需要创建许多不同或类似动画的不同形状(向量)时,问题就出现了,因为这会生成许多.xml个文件。

  1. 我无法在一个<vector>文件中添加准备好的.xml到另一个<include>标签,所以我需要复制相同的代码到另一个文件。这很烦人。

  2. 如果我想为少数<target>元素使用相同的动画,但每个动画必须有f.e.不同的延迟或任何属性值(alpharotationinterpolator ...),我必须创建包含.xml的新<objectAnimator>文件,其中包含更改的一个属性值而不是使用相同的,一个文件具有更改的属性值。这也很烦人。

  3. 我发现我可以使用ObjectAnimator并设置alpha&amp; fillColor AnimatedVectorDrawable,但我想更改translateXtranslateYrotation或任何其他属性时出现问题。有没有办法在没有.xml的情况下执行此操作。我只想访问<group>

1 个答案:

答案 0 :(得分:0)

您使用的构造函数创建具有绝对值(像素)的动画。

TranslateAnimation in = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 0.0f, 0, 0.0f, 0, 0.0f);

尝试使用Animation.RELATIVE_TO_PARENT以满足您的需求。