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:
所以,我vector_drawable.xml
包含<vector>
,其中嵌套<group>
和<path>
定义了一个形状。
对于此向量,我animated_vector_drawable.xml
包含<animated-vector>
,其中android:animation
与<target>
有关。
最后一步是使用rotation.xml
<objectAnimator>
定义动画文件animated_vector_drawable.xml
一切正常,但是当我需要创建许多不同或类似动画的不同形状(向量)时,问题就出现了,因为这会生成许多.xml
个文件。
我无法在一个<vector>
文件中添加准备好的.xml
到另一个<include>
标签,所以我需要复制相同的代码到另一个文件。这很烦人。
如果我想为少数<target>
元素使用相同的动画,但每个动画必须有f.e.不同的延迟或任何属性值(alpha
,rotation
,interpolator
...),我必须创建包含.xml
的新<objectAnimator>
文件,其中包含更改的一个属性值而不是使用相同的,一个文件具有更改的属性值。这也很烦人。
我发现我可以使用ObjectAnimator
并设置alpha
&amp; fillColor
AnimatedVectorDrawable
,但我想更改translateX
,translateY
,rotation
或任何其他属性时出现问题。有没有办法在没有.xml
的情况下执行此操作。我只想访问<group>
答案 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以满足您的需求。