Android setAnimation直接解雇

时间:2013-12-07 12:37:45

标签: android android-animation

您好我使用以下内容:

        final ImageView ivLoading3 = new ImageView(context);
        ivLoading3.setBackgroundResource(com.example.testtabswipe.R.drawable.dot_loading);
        ivLoading3.setLayoutParams(layoutParams);
        final TranslateAnimation mAnimation3 = new LoadingTranslateAnimation(
                TranslateAnimation.ABSOLUTE, 0f,
                TranslateAnimation.ABSOLUTE, 0f,
                TranslateAnimation.RELATIVE_TO_PARENT, 0f,
                TranslateAnimation.RELATIVE_TO_PARENT, 0.2f);
        ((LinearLayout) view).addView(ivLoading3);
        ivLoading3.setAnimation(mAnimation3); // <--- firing off directly

我希望这不要直接开火。有什么我想念的吗?

据我所知,startAnimation用于直接触发,setAnimation只是设置它但不触发它。我在这里误解了什么?

来自http://developer.android.com/reference/android/view/View.html#setAnimation(android.view.animation.Animation)的官方文件:

  

public void setAnimation(动画动画)   设置要为此视图播放的下一个动画。如果你想要的话   立即播放动画,使用   相反,startAnimation(android.view.animation.Animation)。这种方法   提供允许对开始时间进行细粒度控制   失效,但你必须确保1)动画有一个开始   时间设置,以及2)视图的父级(控制其动画的动画)   当动画应该开始时,孩子们将失效。

2 个答案:

答案 0 :(得分:1)

  

<强> setAnimation

     

设置要为此视图播放的下一个动画。但是视图动画可以   尚未开始。

     

<强> startAnimation

     

如果您想立即播放动画,请使用startAnimation。   该方法允许对开始时间进行细粒度控制   和失效,但你必须确保

     

1)动画设置了开始时间,

     

2)假设动画时视图无效   启动。

您可以阅读更多here

答案 1 :(得分:0)

在调用view.setAnimation(anim)之前使用anim.setStartTime,另请参见AnimationUtil.currentAnimationTimeMillis()