Анимация Cicular Reveal в заставке - PullRequest
0 голосов
/ 04 октября 2019

Как получить анимацию циклического открытия при запуске приложения

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, он работает только при применении с помощью нажатия кнопки, но не с запуском приложения

1 Ответ

0 голосов
/ 07 октября 2019

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;
            }
        });
    }
...