본문 바로가기

ANIMATION

(5)
Data Animation??? android의 view Animation은 canvas에 view를 그리기전 시간간격에 따라 Transformation의 Matrix를 변경하는 구조로 이루어져 있다. Animation 객체를 상속받아 커스텀 애니메이션을 만들 경우applyTransformation( float interpolatedTime, Transformation t); 메쏘드를 구현해 주면,해당 변형이 이루어지게 된다. 대략의 흐름을 살펴보면,View.draw() -> layout인 경우 dispatchDraw()가 호출된다.이곳에서 배경을 그리고, 각 child view의 draw()를 호출하게 되는데,호출전 child view 에 Animation이 설정되어 있으면, 해당 Animation의 getTransformation(..
뷰 전환시 3차원 에니메이션 적용하기 뷰 3차원 회전 뷰 에니메이션에 대해서 기존에 포스팅 했는데, 이번엔 뷰 전환시 3차원으로회전하며 전환하는 에니메이션에 대해 정리차원으로 포스팅한다. 소스는 안드로이드 sdk의 샘플(API Demos) 중 Views > Animation > 3D Transition 에구현되어 있다.소스코드는 Rotate3dAnimation.java / Transition3d.java레이아웃은 animations_main_screen.xml 1. 에니메이션 클래스 구현기존 에니메이션 클래스는 2차원 이동과 회전을 지원하고 있는데, 이를 상속받아 3차원 회전 기능을 넣는다. 방식은 갤러리 구현시와 같이 Matrix , Camera를 사용한 회전으로 처리한다.Animation 클래스의 applyTransformation 메쏘..
Animation 관련 샘플 alphatranslatescalelayoutAnimation 안드로이드 샘플 apiDemos에 포함된 에니메이션 관련 xml 들입니다.참고용도~~~ * 알파 : 서서히 나타나는 에니메이션으로 스플래시 윈도우나 뷰들을 자연스럽게 나타나고자할때 사용된다.(알파값을 반대로 하면 서서히 사라짐) * 이동 * 왼쪽으로 이동하며 서서히 나타남 * 왼쪽으로 이동하며 서서히 사라짐 * 위로 이동하며 나타나기 * 7번 흔들기 * 스케일 * 스케일 + 알파를 사용한 축소되며 사라지기 * 서서히 나타나며 원래 크기보다 커졌다가 원래크기로 돌아가는 에니메이션 * 레이아웃 에니메이션 : 레이아웃에 포함된 각 뷰들이 보여지는 에니메이션 설정
에니메이션 interpolater interpolator: 에니메이션이 일어나는 동안의 횟수,속도를 조절하거나 시작과 종료시의효과를 추가 할 수 있다.(점점 빨라지는 에니메이션, 종료시 스프링처럼 바운딩 되는 에니메이션 등..) 보통 안드로이드에 이미 정의되어 있는 "@android:anim/..." interpolator를 사용하나특정 값은 변경할 수 있다. 예 ) cycle_interpolator 의 반복수 변경 : res/anim/cycle_test.xml 구글 샘플 프로젝트animation > interpolators 텍스트 뷰를 좌에서 우로 에니메이션 시키는 예제.. 1. 레이아웃중 에니메이션 시킬 뷰와 부모 뷰를 얻는다.final View target = findViewById( R.id.target );final View p..
에니메이션 처리하기 * 안드로이드에서의 에니메이션은 전통적인 프레임 방식 에니메이션과 Tweening 을 통한 에니메이션 방식이 있다. * 에니메이션안드로이드는 아이폰과 같이 뷰의 간단한 변형에 관련한 에니메이션 처리를 지원한다. 레이아웃 에니메이션과 각 구성요소의 에니메이션으로 나눌수 있다. 처리할 수 있는 에니메이션은 아래와 같으며, 코드상에서의 클래스명이다.AlphaAnimation - 투명도 변환RotateAnimation - 회전ScaleAnimation - 크기 변환TranslateAnimation - 위치 이동 * 이 클래스들은 android.view.animation.Animation 의 하위 클래스이다. 즉, Animation 객체를 상속받아 다양한 에니메이션을 구현할 수 있다.이번 포스트에서는 이미 구현되..