본문 바로가기
프로그래밍 놀이터/안드로이드, Java

[Android/안드로이드] Tween Animation 사용해보자.

by 돼지왕 왕돼지 2012. 2. 18.
반응형


안녕하세요 돼지왕 왕돼지입니다.
오늘은 트윈 에니메이션 ( Tween Animation )에 대해 알아보고, 살짝 사용해보겠습니다.


트윈 애니메이션이 뭐요? ( Tween Animation )

   
위치나 크기, 회전 등의 효과를 일정한 시간내에 수행하여 애니메이션 진행하는 플래시와 비슷한 방식의 애니메이션입니다.
Frame Animation 에 비해 CPU는 더 많이 소모하지만 용량은 훨씬 적으며, 섬세한 중간 단계 구현도 가능합니다.
 
 

무슨 종류가 있소?


TranslateAnimation   (좌표값 변경)
ScaleAnimation       (크기 변경)
RotateAnimation      (회전 각도 변경)
AlphaAnimation       (투명도 변경)
AnimationSet          (에니메이션 조합)
 


Animation 도 xml 로 정의할 수 있는걸로 알고 있는데, 어디에 위치시켜야해?


 에니메이션 정의 파일의 위치는 res/anim.
 
 
 

예제를 한번 봅시다 그럼.


< java >
Animation ani = AnimationUtils.loadAnimation(.this, R.anim.translate);
Linear.startAnimation(ani);
 

<xml> 
// translate.xml
// y축으로 처음부터 시작해서 y축 끝까지 이동
<set xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator = "@android:anim/accelerate_interpolator">
   <translate
        android:fromYDelta = "0"
        android:toYDelta = "100%"
        android:duration = "3000"/>
</set>
 
// rotate.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator = "@android:anim/accelerate_interpolator">
   <rotate
        android:fromDegrees = "0"
        android:toDegrees="360"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration = "3000"/>
</set>
 
// scale.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator = "@android:anim/accelerate_interpolator">
   <scale
        android:fromXScale = "1.0"
        android:toXScale = "0.1"
        android:fromYScale = "1.0"
        android:toYScale = "0.1"
        android:pivotX="50%"
        android:pivotY="50%"
        android:duration = "2000"/>
</set>
 
// alpha.xml
<set xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator = "@android:anim/accelerate_interpolator">
   <alpha
        android:fromAlpha = "1.0"
        android:toAlpha = "0.0"
        android:duration = "1000"
        android:repeatCount = "1"
        android:repeatMode = "reverse"/>
</set>
 
// set.xml
// 모든 animation이 한번에 작동 (순차적이 아님)
<set xmlns:android="http://schemas.android.com/apk/res/android"
       android:interpolator = "@android:anim/accelerate_interpolator">
       <translate ...>
       <alpha ...>
       <scale ...>
       <trotate ...>
</set>



 

저 위에 interpolator 가 있는데, interpolator 에 대해서도 알려줘봐.

  
  설명 
 accelerate_interpolator 처음에 느리다가 점점 빨라짐 
 decelerate_interpolator 처음에 빠르다가 점점 느려진다. 
 accelerate_decelerate_interpolator 빨라지다가 다시 느려진다. 

외에도 interpolator 종류가 많이 있으니, developer 에 가서 참조하세요~
 
로그인 없이 추천 가능합니다. 손가락 꾸욱~

반응형

댓글