11

我想AnimatedVectorDrawable在运行时为我的动画而不使用.xml文件。实际上,我使用.xml文件的方式与文档示例显示的方式相同:

AnimatedVectorDrawable

所以,我有 嵌套的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>元素使用相同的动画,但每个动画必须有不同的延迟或任何属性值(,,,alpha... rotationinterpolator,我必须创建.xml包含更改了一个属性值的新文件<objectAnimator>,而不是使用相同的一个文件具有更改的属性值。这也很烦人。

  3. 我发现我可以使用ObjectAnimator和设置alpha& fillColorforAnimatedVectorDrawable但是当我想更改它的 , 或任何其他属性时会translateX出现问题translateYrotation有没有办法做到这一点.xml。我只想访问<group>

4

1 回答 1

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 来满足您的需求。

于 2018-02-09T06:48:45.650 回答