Не удается запустить этот аниматор в отдельном представлении - PullRequest
0 голосов
/ 25 апреля 2018

Может кто-нибудь сказать мне, что с этим не так?

View view = findViewById(R.id.thumbnail_image_header); // thumbnail_image_header - это imageView

    int cx = (view.getLeft() + view.getRight()) / 2;
    int cy = (view.getTop() + view.getBottom()) / 2;

    // get the final radius for the clipping circle
    int dx = Math.max(cx, view.getWidth() - cx);
    int dy = Math.max(cy, view.getHeight() - cy);
    float finalRadius = (float) Math.hypot(dx, dy);

    // Android native animator
    Animator animator =
            ViewAnimationUtils.createCircularReveal(view, cx, cy, 0, finalRadius);
    animator.setInterpolator(new AccelerateDecelerateInterpolator());
    animator.setDuration(1500);
    animator.start();

1 Ответ

0 голосов
/ 25 апреля 2018

Добавить анимацию под addOnLayoutChangeListener MainLayout.

mainView.addOnLayoutChangeListener(new View.OnLayoutChangeListener() {
        @Override
        public void onLayoutChange(View view, int i, int i1, int i2, int i3, int i4, int i5, int i6, int i7) {
            view.removeOnLayoutChangeListener(this);

            //Add circular revel animation on activity start
            mainView.post(new Runnable() {
                @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
                @Override
                public void run() {
                    //Your Animation Code
                }
            });

        }
    });
...