본문 바로가기

나의 플랫폼/안드로이드

[Android] AnimatorSet 이용

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

여러 Animation을 한번에 돌리기 위해선, 개별적으로 같은 시간에 start를 해봤자 동시에 진행이되지 않습니다.!!!

이럴 경우, AnimatorSet을 이용하여 start를 시키는게 바람직 합니다.



이건 참고용으로 두 View를 Scale로 교환 되는 함수 입니다.


public static void exchangeScaleAnimation(final View scaleOnView, final View scaleOffView, int duration) {

ObjectAnimator scaleOnX = ObjectAnimator.ofFloat(scaleOnView, "scaleX", 1f);
ObjectAnimator scaleOnY = ObjectAnimator.ofFloat(scaleOnView, "scaleY", 1f);
scaleOnX.setDuration(duration);
scaleOnY.setDuration(duration);
ObjectAnimator scaleOffX = ObjectAnimator.ofFloat(scaleOffView, "scaleX", 0f);
ObjectAnimator scaleOffY = ObjectAnimator.ofFloat(scaleOffView, "scaleY", 0f);
scaleOffX.setDuration(duration);
scaleOffY.setDuration(duration);

AnimatorSet scaleSet = new AnimatorSet();
scaleSet.playTogether(
scaleOnX,
scaleOnY,
scaleOffX,
scaleOffY
);
scaleSet.start();
}


위와 같이 AnimatorSet으로 진행해야만 문제 없이 한번에 Animating이 됩니다.

참고하세요.