허니콤 이상버전 부터 사용할 수 있는 ObjectAnimator에 대해서 포스팅 합니다.
기존 AnimationSet과 허니콤 이상 버전부터 지원하는 ObjectAnimator를 이용한 두개의 애니메이션 차이점을 알아보도록 하겠습니다.

ObjectAnimator를 이용한 애니메이션

animationButton Button 타입의 객체
[sourcecode lanugage="JAVA"]
ObjectAnimator objectAnimatorButton = ObjectAnimator.ofFloat(animationButton, "translationX", 0f, 400f);
objectAnimationButton.setDuration(1000);
objectAnimationButton.start();
[/sourcecode]
ObjectAnimator를 이용하면 위와 같이 간단하게 애니메이션을 구현할 수 있습니다.
아래는 기존 AnimationSet을 이용한 것입니다.

AnimationSet을 이용한 애니메이션

[sourcecode language="JAVA"]
AnimationSet animSetAnimationButton = new AnimationSet(true);
TranslateAnimation translateAnimationButton = new TranslateAnimation(
Animation.RELATIVE_TO_SELF, 0,
Animation.RELATIVE_TO_SELF, 1f,
Animation.RELATIVE_TO_SELF, 0,
Animation.RELATIVE_TO_SELF, 0);
animSetAnimationButton.addAnimation(translateAnimationButton);
animSetAnimationButton.setDuration(500);
animSetAnimationButton.setFillAfter(true);
animationButton.setAnimation(animSetAnimationButton);
[/sourcecode]
대략 2배 이상 코드량의 차이가 나는 것을 볼 수 있습니다.
또한 ObjectAnimator는 애니메이션 후 실제 객체의 위치까지 변경이 되었으나 AnimationSet은 시각적으로만 적용되는 것으로 확인이 가능합니다.