Почему ObjectAnimator не работает внутри addOnGlobalLayoutListener

#android #android-animation

Вопрос:

Я пытаюсь оживить изображение после рисования, но это не работает, в чем дело?

Код

 btn.setOnClickListener(v - > {
    ImageView imageView = new ImageView(MainActivity.this);
    imageView.getViewTreeObserver().addOnGlobalLayoutListener(() - > {
        imageView.setLayoutParams(new ConstraintLayout.LayoutParams(50, 50));
        imageView.setImageResource(R.drawable.ic_test);
        imageView.setX(btn.getX()   (float) btn.getWidth() / 2 - (float) imageView.getWidth() / 2);
        imageView.setY(btn.getY()   (float) btn.getHeight() / 2 - (float) imageView.getHeight() / 2);
        imageView.setColorFilter(Color.WHITE);
        imageView.setZ(100);
        ObjectAnimator objectAnimatorX = ObjectAnimator.ofFloat(imageView, "translationX", imageView.getX(), 250);
        ObjectAnimator objectAnimatorY = ObjectAnimator.ofFloat(imageView, "translationY", imageView.getY(), 500);
        AnimatorSet animatorSet = new AnimatorSet();
        animatorSet.playTogether(objectAnimatorX, objectAnimatorY);
        animatorSet.setDuration(5000);
        animatorSet.start();
    });
    root.addView(imageView);
});
 

Комментарии:

1. Убедитесь .setImageResource , что изображение загружается и по умолчанию не белое, попробуйте изменить root фон просмотра, отличный от белого, и вы увидите анимацию