在不同的时间,在不同的元素中使用相同的动画

时间:2014-12-01 18:54:10

标签: android animation translate-animation

我想要动画的几个TextView。我想使用相同的动画,但每个TextView在不同的时间开始。我搜索但找不到怎么样。我尝试了setStartOffset,但似乎我没有按照指示使用。有人可以帮帮我吗? 这是我的代码:

    TranslateAnimation animation = new TranslateAnimation(
    Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f,
    Animation.ABSOLUTE, -1500.0f, Animation.ABSOLUTE, 0.0f);
    animation.setDuration(3000);
    tvNumero1.startAnimation(animation);

    //this fails:
    animation.setStartOffset(300);
    tvNumero2.startAnimation(animation);

1 个答案:

答案 0 :(得分:3)

我为元素创建了不同的动画,或者,您可以使用xml资源中的动画。这是代码:

//First Animation
TranslateAnimation animation = new TranslateAnimation(
    Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f,
    Animation.ABSOLUTE, -1500.0f, Animation.ABSOLUTE, 0.0f);
animation.setDuration(3000);
tvNumero1.startAnimation(animation);

//Second Animation
TranslateAnimation animation2 = new TranslateAnimation(
    Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, 0.0f,
    Animation.ABSOLUTE, -1500.0f, Animation.ABSOLUTE, 0.0f);
animation2.setDuration(3000);
animation2.setStartOffset(300);
tvNumero2.startAnimation(animation2);

或者,您可以在XML文件中定义动画:

<?xml version="1.0" encoding="utf-8"?>
<translate xmlns:android="http://schemas.android.com/apk/res/android"
    android:duration="3000"
    android:fromYDelta="-1500"
    android:toYDelta="0" >

</translate>

以下是XML的代码:

Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.text_move);
tvNumero1.startAnimation(animation);

Animation animation2 = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.text_move);
animation2.setStartOffset(300);
tvNumero2.startAnimation(animation2);

以前的代码似乎在等待偏移然后开始整个动画,我将它改为3秒,并且需要3秒才能启动。

相关问题