【问题标题】:Cicular Reveal Animation in splash screen初始屏幕中的圆形显示动画
【发布时间】:2019-10-04 18:51:44
【问题描述】:

如何在应用程序启动时获得循环显示动画

CircularRevealTransition();

public void CircularRevealTransition() {

    int cy = view.getHeight()/2;
    int cx = view.getWidth()/2;

    float finalRadius = (float) Math.hypot(cx,cy);

    Animator animator = ViewAnimationUtils.createCircularReveal(findViewById(R.id.cicular_reveal_id),cx,cy,0,finalRadius);
    view.setVisibility(View.VISIBLE);

    animator.start();
}

我已经在 onCreate 方法中编写了这段代码,它只在单击按钮时有效,而不是在应用程序启动时有效

【问题讨论】:

    标签: material-design android-animation circularreveal


    【解决方案1】:

    OnCreate 方法太早开始动画,因为真正的绘图要晚得多。 OnPreDrawListener 在绘制视图之前调用。

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            View view = LayoutInflater.from(this).inflate(R.layout.activity_main, null);
            view.getViewTreeObserver().addOnPreDrawListener(new OnPreDrawListener() {
                @Override
                public boolean onPreDraw() {
                    view.getViewTreeObserver().removeOnPreDrawListener(this);
    
                    CircularRevealTransition();
                    return true;
                }
            });
        }
    

    【讨论】:

      猜你喜欢
      • 2021-12-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多