2013-10-08 45 views
0

我在查看如何让动画视图消失?

使用NineOldAndroid的AnimatorSet,当我想摆脱的动画,使消失的观点 - 什么也没有发生

如何使视图消失?

public void showAnimation(boolean show) { 
    if (show) { 
     if (mTarget.getVisibility() != View.VISIBLE) { 
      // play sound 

      mTarget.setVisibility(View.VISIBLE); 
      pauseAnimation = false; 
      // start animation 
      initTargetAnimation(); 
     } 
    } else { 

     pauseAnimation = true; //All of this block gets executed in the debugger, but none of it actually take effect 
     if (mTarget.getAnimation() != null) { 
      mTarget.getAnimation().cancel(); 
      mTarget.clearAnimation(); 
     } 
     mTarget.setVisibility(View.GONE); 
    } 



} 

    private void initTargetAnimation() { 

    final AnimatorSet set = new AnimatorSet(); 

    // init animation properties 
    set.playTogether(ObjectAnimator.ofFloat(mTarget, "scaleX", RELEVANT_ANIMATION_SEQUENCE), ObjectAnimator.ofFloat(mTarget, "scaleY", RELEVANT_ANIMATION_SEQUENCE)); 

    // add animation listener 
    set.setDuration(1500).addListener(new Animator.AnimatorListener() { 
     @Override 
     public void onAnimationStart(Animator animation) { 

     } 

     @Override 
     public void onAnimationEnd(Animator animation) { 
      // RESTART ANIMATION 
      if (!pauseAnimation) { 
       initTargetAnimation(); // TODO fix 
      } 
     } 

     @Override 
     public void onAnimationCancel(Animator animation) { 

     } 

     @Override 
     public void onAnimationRepeat(Animator animation) { 

     } 
    }); 

    // start animation 
    set.start(); 

} 
+0

@Kerry如果你要编辑我的文章 - 也许你可以回答我的问题? –

回答

0

当您在View mTarget上设置可见性后,尝试在其上调用invalidate()。这假定你从主线程调用它,否则它是postinvalidate()。

+0

我希望它有帮助,但它仍然没有消失:( –

+0

你能发布你的完整代码吗? – Kerry

+0

我贴的代码,是我的完整代码短的 mTarget =(View)fragment.findViewById(R.id.target ) –