만족

[Android Studio] Animation 본문

[Android Studio] Animation

FrontEnd/Android Satisfaction 2017. 6. 30. 03:51

뷰나 레이아웃이 움직이거나, 투명도가 바뀌는 등의 행동을 애니메이션으로 표현하는 방법.


<xml>


res폴더에 anim폴더를 새로 만들고, xml파일을 하나 만든다.


<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<!--Move 100%p to 0%p during 1 sec(1000ms) -->
<translate
android:fromXDelta="100%p"
android:toXDelta="0%p"
android:duration="1000"/>
<!--change alpha from 0.5 to 1.0 during 1 sec(1000ms) -->
<alpha
android:fromAlpha="0.5"
android:toAlpha="1.0"
android:duration="1000"/>
</set>

set태그 안에 translate, alpha, rotate 등의 태그를 포함하는 형태이다.


위의 xml은 X좌표값이 100%p이고 알파값이 0.5부터 시작해서 X좌표값이 0%p이고 알파값이 1.0으로 1초동안 변화한다.


이제 이 xml을 뷰에 적용하려면, JAVA코드로 넘어간다.


<JAVA>


Animation toLeft;

처럼 Animation 객체를 생성하고


toLeft= AnimationUtils.loadAnimation(this, R.anim.animation_toleft);

처럼 AnimationUtils.loadAnimation 메소드를 이용하여 해당 애니메이션 객체기 어떤 애니메이션 xml파일을 사용할 것인지를 정한다.


moveLayout.startAnimation(toLeft);

그리고 특정 뷰의 startAnimation메소드를 사용하면, 해당 뷰를 대상으로 애니메이션이 진행된다.


<작동 메커니즘>


안드로이드에서는 트윈 애니메이션 기법을 사용한다.


이 기법은 애니메이션을 시작할 때, Resource로부터 애니메이션 정보를 얻어와 애니메이션 객체를 만들고

(AnimationUtils.loadAnimation(...))


그 객체를 다시한번 뷰에 전달하여 동작한다

(startAnimation(...))


위의 예시에서도 알 수 있듯이, 리소스->Animation 객체->뷰 객체 로 두번의 정보 이동을 거치기 때문에 트윈 애니메이션이라 한다.





Comments