안드로이드에서 애니메이션을 만들려면
1. XML로 어떻게 동작하는지 정의
2. 소스에 에니메이션 객체를 불러 startAnimation()을 통해 동작
1. XML 정의
프로젝트 내의 res/anim 폴더 밑에 원하는 애니메이션 xml을 정의 한다.
<?xml version="1.0" encoding="utf-8"?> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="500" android:repeatCount="1000000"/> |
이 코드는 translate와, alpha를 사용한 페이드 아웃 애니메이션이다
우선, translate는 뷰나 기타 구성요소들의 위치 이동을 지정하는 태그이다.
fromXDelta는 X축 어디서부터 이동할것인지, toXDelta는 x축 어디까지 이동할 것인지를 의미한다.
위 코드에서는 100%부터 0%까지 이동하는 것으로 오른쪽 끝지점에서 왼쪽 끝지점으로 이동하게 된다.
alpha에서는 fromAlpha="0.0" fromAlpha="1.0"으로 바꾸면 페이드 인 애니메이션이 된다.
[페이드 아웃 : 화면이 점차 어두워지면서 장면이 바뀌는 것]
[페이드 인: 화면이 점차 밝아 지면서 장면이 바뀌는 것]
양 태그에 존재하는 duration은 지속 시간을 의미하며 단위는 1/1000 sec이다 1000을 입력하면 1초를 의미한다.
repeatCount는 애니메이션이 반복될 횟수를 지정한다.
만약 여러 애니메이션을 설정하고 싶으면 <set>태그를 사용한다
각 애니메이션별로 속성값이 있는 애니메이션의 속성을 사용해야 된다.
alpha - fromAlpha, toAlpha
scale - fromXScale, toXScale, fromYScale, toYScale, pivotX, pivotY fillAfter, fillBefore
rotate - fromDegrees, toDegrees, pivotX, pivotY, startOffset
translate - toXDelta, toYDelta
2. 코드에 적용
public class AnimationActivity extend Activity { Animation animation;
@Override public void onCreate(Bundel saveInstanceState) { super.onCreate(saveInstanceState); setecontentView(R.layout.main);
animation = AnimationUtils.loadAnimation(this, R.anim.animation);
View.startAnimation(animation);
.... }
.... } |
xml에 정의된 애니메이션 설정들을 부르기 위해서 AnimationUtils 객체를 사용했다.
애니메이션을 보이기 위해서는
View.startAnimation(animain);을 통하여 동작할 수 있다.
'Android' 카테고리의 다른 글
[자동 입력, 연관 검색] AutoCompleteTextView (0) | 2013.07.25 |
---|---|
안드로이드 애니메이션 샘플 요약 (0) | 2013.07.19 |
[Slide]슬라이드 뷰 플리퍼(ViewFlipper) (0) | 2013.07.18 |
EditText 한글입력 안되는 증상 (0) | 2013.07.18 |
onTextChanged, beforeTextChanged, afterTextChanged (0) | 2013.07.18 |