dev/aos

[AOS] AnimationSet 만들기

캄춰 2023. 11. 13. 17:54
728x90
반응형

미친듯이 기능을 만들던 때 광고 애니메이션을 만든 적이 있었다.

보통 애니메이션을 신경 쓰지 않지만,

아이폰을 테스트한 이후로 마음이 바뀌었다.

 

안드로이드도 무언가? 부드럽게 표시하게 하면 더 고급스럽고 좋은 느낌을 줄 것 같다.

 

 

AnimationSet만들기

: 아래에서 위로 투명에서 점점 보이도록

// 애니메이션 집합
AnimationSet animationSet = new AnimationSet(true);

// 이동하는 애니메이션
TranslateAnimation translateAnimation = new TranslateAnimation(fromXDelta=0, toXDelta=0, fromYDelta=64, toYDelta=0);
translateAnimation.setFillAfter(true);	// 애니메이션이 최종적으로 멈춘 위치로 고정되는 것
translateAnimation.setDuration(1000);

// 투명도 애니메이션
AlphaAnimation alphaAnimation = new AlphaAnimation(0.0f, 1.0f);
alphaAnimation.setDuration(1000);


// 애니메이션이 시작되는 시간
// 1000 설정시 start이후 1초 뒤 재생
animationSet.setStartOffset(1000);

animationSet.addAnimation(translateAnimation);
animationSet.addAnimation(alphaAnimation);


// 애니메이션 셋을 시작할 뷰에서 시작
binding.somethingView.startAnimation(animationSet);

 

 

 

 

추가로, 이동 애니메이션을 자주 사용하니 재정리를 하자면,

코드로 사용하는 것이 훨씬 간편하다...

: 화면 밖에서 안쪽으로 또는 안쪽에서 화면 밖으로 나가는 이동 애니메이션(translate)을 만들고 싶은 경우

TranslateAnimation translateAnimation = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toXDelta);

float xDelta = -1.0f;

		// 우측으로 나갈 경우
        if (directRight) xDelta = 1.0f;
        translateAnimation = new TranslateAnimation(
                Animation.RELATIVE_TO_PARENT,0.0f, Animation.RELATIVE_TO_PARENT,xDelta,
                Animation.RELATIVE_TO_PARENT,0.0f, Animation.RELATIVE_TO_PARENT,0.0f);
728x90
반응형