如何在应用程序启动时获取圆形显示动画
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方法中编写了这段代码,它只有在单击按钮时才起作用,而在应用程序启动时不起作用
答案 0 :(得分:0)
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;
}
});
}