본문 바로가기

프로그래밍/Android

에니메이션 interpolater

interpolator: 에니메이션이 일어나는 동안의 횟수,속도를 조절하거나 시작과 종료시의

효과를 추가 할 수 있다.

(점점 빨라지는 에니메이션, 종료시 스프링처럼 바운딩 되는 에니메이션 등..)

 

보통 안드로이드에 이미 정의되어 있는 "@android:anim/..." interpolator를 사용하나

특정 값은 변경할 수 있다.

 

예 ) cycle_interpolator 의 반복수 변경 : res/anim/cycle_test.xml

<cycleInterpolator xmlns:android="http://schemas.android.com/apk/res/android"

android:cycles="7" />

 

 

 

구글 샘플 프로젝트

animation > interpolators

 

텍스트 뷰를 좌에서 우로 에니메이션 시키는 예제..

 

1. 레이아웃중 에니메이션 시킬 뷰와 부모 뷰를 얻는다.

final View target = findViewById( R.id.target );

final View parent = (View) target.getParent();

 

2. 이동 에니메이션 객체를 생성한다.

 

Animation a = new TranslateAnimation(0.0f,

parent.getWidth() - target.getWidth() - parent.getPaddingLeft() - parent.getPaddingRight(), 0.0f, 0.0f);

 

//에니메이션 설정

a.setDuration(1000);

a.setStartOffset(300);

a.setRepeatMode(Animation.RESTART);

a.setRepeatCount(Animation.INFINITE);

 

3. 에니메이션별 interpolator 설정

미리 정의된 안드로이드 에니메이션 설정을 얻는다.

a.setInterpolator( AnimationUtils.loadInterpolator( this, android.R.anim.식별자) );

 

식별자

- 일정하게 : linear_interpolator

- 점점빠르게 : accelerate_interpolator

- 점점 느리게 이동 : decelerate_interpolator

- 위 둘을 동시에 : accelerate_decelerate_interpolator

- 시작위치에서 조금 뒤로 당겼다 이동 : anticipate_interpolator

- 도착위치를 조금 지나쳤다가 도착위치로 이동 : overshoot_interpolator

- 위 둘을 동시에 : anticipate_overshoot_interpolator

- 도착위치에서 튕김 : bounce_interpolator

- 반복 : cycle_interpolator

'프로그래밍 > Android' 카테고리의 다른 글

서비스1 - 로컬서비스  (0) 2009.12.22
LayoutInflater를 사용해 레이아웃 구성하기  (0) 2009.12.15
액티비티 변경 에니메이션  (0) 2009.12.06
Animation 관련 샘플  (0) 2009.12.06
ViewFlipper로 뷰 교체하기  (0) 2009.12.06
커스텀속성과 R.styleable  (0) 2009.11.25
Splash window 보이기  (0) 2009.11.24
TextButton 만들기  (0) 2009.11.22
버튼 상태에 따른 배경변경  (0) 2009.11.22
에니메이션 처리하기  (0) 2009.11.19