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

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

问题描述:

我有几个我想要动画的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); 
+0

您是否试过定义两个动画对象,每个对象一个? Handler方法可能会过度,因为Android已经为您提供了正在使用的偏移量。 – Toguard 2014-12-01 21:57:02

我创建不同的动画元素,或者,你可以使用一个animaiton从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秒。

+0

非常感谢你Toguard。他正在寻找。代码的选择曾经想过,但我需要的东西会使用更少的代码,因为我需要许多相同的动画(这是元素的下雨)。 XML代码的选择是完美的。非常感谢您的宝贵时间 – 2014-12-02 15:38:27