차케요 2014. 2. 4. 03:22

 

  안드로이드 Scale Animation

 

Android 기본 변형 애니메이션 중 세번째로 Scale Animation에 대해서 알아보도록 하겠습니다.


이 애니메이션은 객체의 중심점을 기준으로 확대 또는 축소가 되는 형태 인데요. 예제를 하나 만들어서 코드를 작성하고 실행을 시켜보겠습니다.

 

 투명(Alpha Animation) : http://kd3302.tistory.com/90

이동 (Translate Animation) : http://kd3302.tistory.com/97

 

 

먼저 "res" 폴더에 "anim" 폴더를 만들고 그 안에  "Scale Animation" 관련 xml 파일을 만들고 사용할 이미지를 "drawable" 폴더에 넣도록 하겠습니다. 이 내용이 정확히 이해가 되지 않는 분은 앞의 포스팅을 참고하실 바라겠습니다.

scale.xml 파일을 다음과 같이 작성하도록 하겠습니다. 

 'fromXScale' 을 "1.0"으로 설정을 하여 처음 시작을 할때 원래 크기에서 시작을 하도록 하며, 'toXScacle'를 "2.0"으로 설정을 2배로 확대되게 하고 있는 내용입니다.

 

 X축과 마찬가지로 Y축도 원형의 크기에서 두배로 커지게 하는 내용입니다.

 

③  'pivotX, Y'는 확대 기준점을 설정하는 부분인데요. X축과 Y축의 표기가 다른것을 확인 할 수 있습니다. 중심축을 설정할때 "50" 또는  "50%" 라고 설정되어 있는것은 대상의 크기의 비율을 의미합니다. 즉 Y축은 이미지 폭에 대해 50% 지점을 의미합니다. X축의 설정"50%p"는 부모 객체의 넓이를 의미합니다. 즉, 부모 객체의 크기에 비례해서 중심점을 정하겠다는 의미입니다.

 

 'startOffset'을 "2000"으로 설정해서 프로그램이 실행되고 난 후 2초후에 애니메이션이 실행되도록 설정하고, duration을 "5000"설정해서 5초 동안에 걸쳐 애니메이션이 실행되도록 하는 내용입니다.

 

이제 activity_main.xml 파일을 작성하도록 하겠습니다.  

 ImageView를 중앙에 배치하고 아이디를 "imageview1"로 설정하고 출력될 이미지를 drawable 폴더에 준비한 "mark"로 설정하고 있습니다.

 

다음은 MianActivity.java 에서 각 파일을들 불러와서 실행을 시키도록 하겠습니다.

 ImageView를 아이디로 찾아와서 image 객체에 담고, 애니메이션을 위에서 준비한 Scale로 설정하고 있는 내용입니다. 이제 AVD에서 실행을 해보도록 하겠습니다.

 

 

실행을 해보면 중앙에 위치하고 있던 마크가 왼쪽으로 이동하면서 커지는것을 확인할 수있습니다. scale.xml 파일에서 pivotX를 "50%p" 로 설정했기 때문입니다. 이 수치를 그냥 "50"으로 설정한다면 중앙에 그대로 있는 상태로 사이즈만 두배로 커지게 될것입니다. Y축을 "50%p"로 설정하면 위쪽으로 움직이면서 사이즈가 커지게 될것입니다. 살짝씩 숫자를 바꿔가면서 테스트 해보면 어떻게 적용이 되는지 바로 알 수 있을것입니다.