在运行时添加动画

Wis*_*nia 11 xml animation android android-vectordrawable

我想AnimatedVectorDrawable在不使用.xml文件的情况下在运行时动画我的动画.实际上我使用的.xml文件与文档样本显示的方式相同:

AnimatedVectorDrawable

所以,我 vector_drawable.xml包含<vector>嵌套<group><path>定义形状.

对于这个矢量我有animated_vector_drawable.xml包含<animated-vector>android:animationassinged来<target>.

最后一步是定义一个动画文件rotation.xml使用<objectAnimator>它用于通过animated_vector_drawable.xml

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

  1. 我不能包括准备和准备<vector>从一个.xml文件到另一个(某种<include>标签)所以我需要将相同的代码复制到另一个文件.这很烦人.

  2. 如果我想使用一些相同的动画<target>元素,但每个动画必须FE不同的延迟或任何属性值(alpha,rotation,interpolator...),我必须创建新的.xml文件包含<objectAnimator>与改变一个属性值,而不是使用相同的,一个文件具有更改的属性值.这也很烦人.

  3. 我发现我可以使用ObjectAnimator,并设置alphafillColorAnimatedVectorDrawable,但有一个问题,当我想改变它translateX,translateY,rotation或任何其他属性.有没有办法做到这一点没有.xml.我只是想访问<group>

小智 0

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

TranslateAnimation in = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 1.0f,
Animation.RELATIVE_TO_SELF, 0.0f, 0, 0.0f, 0, 0.0f);
Run Code Online (Sandbox Code Playgroud)

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