您好我使用以下内容:
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只是设置它但不触发它。我在这里误解了什么?
public void setAnimation(动画动画) 设置要为此视图播放的下一个动画。如果你想要的话 立即播放动画,使用 相反,startAnimation(android.view.animation.Animation)。这种方法 提供允许对开始时间进行细粒度控制 失效,但你必须确保1)动画有一个开始 时间设置,以及2)视图的父级(控制其动画的动画) 当动画应该开始时,孩子们将失效。
答案 0 :(得分:1)
<强> setAnimation 强>
设置要为此视图播放的下一个动画。但是视图动画可以 尚未开始。
<强> startAnimation 强>
如果您想立即播放动画,请使用startAnimation。 该方法允许对开始时间进行细粒度控制 和失效,但你必须确保
1)动画设置了开始时间,
2)假设动画时视图无效 启动。
您可以阅读更多here
答案 1 :(得分:0)
在调用view.setAnimation(anim)之前使用anim.setStartTime,另请参见AnimationUtil.currentAnimationTimeMillis()