Android - 如何在XML中使用ObjectAnimator

时间:2016-02-07 19:26:45

标签: android android-animation

我只想使用在XML文件中定义的objectAnimator。我想放两个objectAnimators并想在我的代码中选择我想要使用的代码。

这就是我的XML文件在我设置propertyName的位置,我想稍后在代码中访问:

<?xml version"1.0" encodin="utf-8"?>
<set xmlns:android="..."
    <objectAnimator
        android:propertyName="animX"
        android:duration="1000"
        android:valueFrom="FFFFFF"
        android:valueTo="FF0000" />

    <objectAnimator
        android:propertyName="animY"
        android:duration="1000"
        android:valueFrom="FF0000"
        android:valueTo="FFFFFF" />

</set>

这是代码,我想要访问定义propertyName的{​​{1}}:

objectAnimator

不幸的是,这不是它的工作方式,我真的很难找到一个解决方案来访问我想要的objectAnimators。

2 个答案:

答案 0 :(得分:1)

问题之一是:

1)每个ObjectAnimator都必须是它自己的,然后在你给动画师充气(通过final ObjectAnimator animator = (ObjectAnimator) AnimatorInflater.loadAnimator(context, resID);)并在视图上设置

后添加到一个集合中

2)如果XML给你IDE错误,请检查ObjectAnimators文件夹中的/animator是否在/anim目录中的/res文件夹中

已编辑:/animators未被识别,但/animator

答案 1 :(得分:0)

你能不能以编程方式创建自己的objectanimators吗?

ObjectAnimator objectAnimator1 = new ObjectAnimator();
objectAnimator.setPropertyName("animX");
objectAnimator.setFloatValues(0, 1);
objectAnimator.setTarget(logoView);//call this when your ready to set target
objectAnimator.setDuration(1000);

然后创建另一个并将它们存储为实例变量?

更新

所以只需在res中创建一个anim文件夹。并创建两个不同的xml文件。分别打电话给每个人。