【问题标题】:Remove views after animations are finished动画完成后移除视图
【发布时间】:2016-03-09 08:09:54
【问题描述】:

我正在寻找一种方法来从具有缩放动画的布局中删除视图。方法 removeFromLayout 应该将它们缩放到 0,并且在每个 View 完成动画后,应该清除布局。

public void removeFromLayout(){
        for(int i=all.size()-1;i>=0;i--){
            all.get(i).animate()
                    .scaleX(0)
                    .scaleY(0)
                    .setDuration(200)
                    .setStartDelay(i*Activity.SIZE).start();
        }
        //After all animations are done, they should be removed
        layout.removeAllViews();
    }

所以我的问题是,我怎样才能“延迟” layout.removeAllViews()?

提前致谢

【问题讨论】:

    标签: java android animation


    【解决方案1】:

    考虑使用ObjectAnimator 类。您可以设置动画侦听器。下面的代码sn -p会给你一个思路。

    ObjectAnimator scaleDown = ObjectAnimator.ofPropertyValuesHolder(view, 
        PropertyValuesHolder.ofFloat("scaleX", 0.5f),
        PropertyValuesHolder.ofFloat("scaleY", 0.5f));
    scaleDown.setDuration(1000);
    scaleDown.addListener(new Animator.AnimatorListener() {
                @Override
                public void onAnimationStart(Animator animation) {
    
                }
    
                @Override
                public void onAnimationEnd(Animator animation) {
                   //Animation is complete, you can remove all your views here
                   layout.removeAllViews();
                }
    
                @Override
                public void onAnimationCancel(Animator animation) {
    
                }
    
                @Override
                public void onAnimationRepeat(Animator animation) {
    
                }
            });
    scaleDown.start();
    

    【讨论】:

      【解决方案2】:

      创建一个倒数计时器:

      new CountDownTimer(200, 10) {
      
       public void onTick(long millisUntilFinished) 
       {}
      
       public void onFinish() {
           layout.removeAllViews();
       }
       }.start();
      

      【讨论】:

        猜你喜欢
        • 2021-03-28
        • 2013-07-15
        • 1970-01-01
        • 2020-05-11
        • 2014-05-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多