javaandroidandroid-animationobjectanimatorviewpropertyanimator

Android property animation: how to increase view height?


How to increase the view height using Property Animations in Android?

ObjectAnimator a = ObjectAnimator.ofFloat(viewToIncreaseHeight, "translationY", -100);
a.setInterpolator(new AccelerateDecelerateInterpolator());
a.setDuration(1000);
a.start();

The translationY actually moves the view not increase the height. How can I increase the height of the view?


Solution

  • ValueAnimator anim = ValueAnimator.ofInt(viewToIncreaseHeight.getMeasuredHeight(), -100);
    anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
        @Override
        public void onAnimationUpdate(ValueAnimator valueAnimator) {
            int val = (Integer) valueAnimator.getAnimatedValue();
            ViewGroup.LayoutParams layoutParams = viewToIncreaseHeight.getLayoutParams();
            layoutParams.height = val;
            viewToIncreaseHeight.setLayoutParams(layoutParams);
        }
    });
    anim.setDuration(DURATION);
    anim.start();