Android

(스크랩 ) android animation 종류

Machine_웅 2022. 3. 2. 12:52
728x90
반응형

스크랩 !!

https://jinsangjin.tistory.com/30

 

[Android] 안드로이드 애니메이션 종류 #Property #View #Transition

최근 안드로이드 앱 개발을 하면서 애니메이션을 사용해보고 있다. 그런데 같은 애니메이션도 구현하는 방식이 천차만별이다. 애니메이션에 대해서 개념을 잡고 갈 필요성을 느껴 정리 해보고

jinsangjin.tistory.com

 

최근 안드로이드 앱 개발을 하면서 애니메이션을 사용해보고 있다.

그런데 같은 애니메이션도 구현하는 방식이 천차만별이다.

애니메이션에 대해서 개념을 잡고 갈 필요성을 느껴 정리 해보고자 한다.

 

https://medium.com/@shubham08gupta/a-beginners-guide-to-implement-android-animations-part-1-2-part-series-b5fce1fc85 

해당 블로그의 내용을 참고하여 정리했다.

 

 

 

애니메이션의 종류

1. View Animation

- View의 속성이 바뀌지 않는다.

- 예를 들어, view를 오른쪽으로 100만큼 이동시키는 애니메이션이 있다고 가정하자. 애니메이션 효과로 view는 오른쪽으로 100만큼 이동했지만 클릭시 터치가 되지 않는다. 왜냐하면 view의 속성은 그대로 0의 위치에 있기 때문이다.

-> Splash screen을 만드는데 주로 사용된다.

 

2. Property Animation

- View의 속성이 바뀐다.

-> Animation 효과 이후 click 처리가 필요한 경우

-> 대부분의 애니메이션 효과는 property Animation으로 만든다고 한다.

 

3. Transition Animation

- API21+ 부터 적용 가능하고 화면 전환시 애니메이션 효과를 줄 수 있다.

 

 

 

 

 

Property Animation

 

- 가장 많이 쓰이는 Animation

 

1) ValueAnimator

(코드로 정의)

  • ValueAnimator valueAnimator = ValueAnimator.ofFloat(0f, 500f);

(xml로 정의된 것 가져오기)

  • ValueAnimator valueAnimator = (ValueAnimator) AnimatorInflater.loadAnimator(this, R.animator.value_animator_ex);

 

 

2) ObjectAnimator

- ValueAnimator에서 개선된 기능이다. 

- valueAnimator는 자동으로 property를 업데이트 해주기 때문에 .AnimatorUpdateListener를 사용하지 않아도 된다.

- 구현방법은 마찬가지로 코드로 정의하는 방법, xml로 가져오는 방법 두가지가 있다.(ValuAnimator 를 ObjectAnimator로 바꿔주기만 하면 된다.)

 

 

 

 

 

 

View Animation

 

1)Tween Animation

- Animation anim = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.scale);

                view.startAnimation(anim);

- 위와 같이 AnimationUtils를 사용

 

 

2)Frame Animation

- frame을 연속적으로 보여줌으로써 애니메이션 효과를 준다.

 

 

->View Animation에 구현할 수 있는 것은 ViewPropertyAnimator로 더 빠르고 간결하게 구현할 수 있기 때문에 실질적으로 잘 쓰이지 않는다고 한다.

 

 

 

 

 

 

3. Transition Animation

 

- 말 그대로 전환시 사용할 수 있는 애니메이션이다.

- activity -> activity 로 전환시 밋밋함으로 해소해줄 친구다.

- udacity android material design 강의를 봤었는데 해당 주제를 비중있게 다루고 있었다.

- API21부터 적용 가능

- 이 부분은 나중에 기회가 되면 더 공부해서 정리해봐야겠다.

 

 

 

 

기타

 

"Animation을 여러 개 사용하려면?"

 - AnimatorSet

 - ViewPropertyAnimator

 

 

"Animation이 나의 앱을 무겁게 만들지는 않을까?"

 - 당연하다.

 - View 렌더링 과정 중 animation Stage가 있다. 그 곳을 확인하자

    - >개발자 모드의 profile gpu rendering을 활용하면 anim의 부하를 확인할 수 있다.

    - https://developer.android.com/topic/performance/rendering/inspect-gpu-rendering

 

 

참고 2 

 

https://mainia.tistory.com/2897

 

안드로이드(Android) scale 이용해서 애니메이션(Animation) 구현하는 방법

안드로이드(Android)  scale 이용해서 애니메이션(Animation) 구현하는 방법 환경: Android Studio 이전 포스팅에서는 안드로이드에서 제공하는 translate 요소를 이용해 애니메이션 효과를 구현해 봤습니

mainia.tistory.com

 

 fromXScale : 시작하는 X 의 크기

 toXScale : 끝나는 시점의 X 크기.

 fromYScale : 시작하는 Y 의 크기.

 toYScale : 끝나는 시점의 Y 크기

 pivotX : X 좌표의 중심점

 pivotY : Y 좌표의 중심점

 duration : 애니메이션 적용 시간

 repeatCount : 반복 횟수

 repeatMode : 반복시 다시 생성될 때 방향

 

 

 1) Alpha : 투명도 변환, 주로 fade-in / fade-out 효과를 줄 때 쓸 수 있다.

 2) Rotate : 회전을 주고 싶을 때 사용한다.

 3) Scale : 크기 변환 속성이다. X, Y축을 따로 설정할 수 있다.

 4) Translate : 위치를 변경할 때 사용한다.



출처: https://dunchi.tistory.com/95 [둔치의 개발이야기]

 

[Android] 안드로이드에 Animation 적용하기!

안드로이드에 애니메이션을 적용하려고 찾아보면 종류가 너무 많아 헷갈린다 ㅜㅜ 그래서 이 게시글에서는 Animation의 종류와 적용 방법을 정리해보겠다! * 애니메이션 종류 1. Property Animation 2. Vi

dunchi.tistory.com

 

https://developer.android.com/guide/fragments/animate

 

Navigate between fragments using animations  |  Android Developers

Navigate between fragments using animations The Fragment API provides two ways to use motion effects and transformations to visually connect fragments during navigation. One of these is the Animation Framework, which uses both Animation and Animator. The o

developer.android.com

 

 

참고 3

https://youngest-programming.tistory.com/483

1. Enter Animation

다음 사진과 같이 새로 전활될(들어올,Enter) B의 전환 애니메이션을 뜻 합니다. 왼쪽에서 오른쪽으로 움직이는 애니메이션이라고 예시를 들겠습니다. ㅎㅎ  Enter 라는 뜻 그대로 생각하시면 이후 애니메이션들도 어떻게 동작할지 감이 잡히고 더 쉬울 것이라고 생각합니다.

 

2. Exit Animation

Exit 애니메이션은 이제 전환을 당해서 화면에서 가려지거나 사라질 A의 전환 애니메이션 입니다. 

그래서 Enter와 Exit 애니메이션을 오른쪽으로 이동하게 설정한다면 다음과 같이 진행되겠네요 :)

 

3. Pop Enter Animation

먼저 Pop이란 뜻에 대해 이해해야 합니다. 여기서 Pop이란 Stack 자료구조처럼 위에 가장 상단의 데이터가 Pop 된다는 뜻으로 여기 Jetpack Navigation에서는 화면(예: 프래그먼트) 스택구조로 쌓여있는데 백스택 버튼 클릭 등의 이유로 맨 위에있던 화면이 Pop 될때의 애니메이션이라고 생각하면 됩니다. 

 

그래서 결론을 말하자면 Pop Enter는 이전 화면으로 돌아갈 때(Pop or Back) 이동할 BackStack의 Destination에 대한 애니메이션 입니다.

 

그림으로 설명하자면 다음과 같습니다. A 화면 스택위에 B가 있었는데 B가 Pop 되면 A가 보이게 될텐데 그때의 A가 화면에 나타나는 애니메이션이라고 보시면 됩니다.

 

4. Pop Exit Animation

반대로 Pop Exit는 이전 화면으로 돌아갈 때(Pop or Back) 종료되는 현재 Destincation 에 대한 전환 애니메이션 입니다.

즉 스택의 최상단 즉 보여지고 있던 B화면이 POP되면서 사라지면서의 애니메이션입니다. 

만약 위 3번의 A가 오른쪽에서 왼쪽으로 오게하는 전환 애니메이션을 가진 Pop Exit 애니메이션과 

여기서 B의 전환 애니메이션도 똑같이 적용한다면 다음과 같이 되겠네요.

 

리소스 속성

 

https://developer.android.com/guide/topics/resources/animation-resource?hl=ko 

 

애니메이션 리소스  |  Android 개발자  |  Android Developers

애니메이션 리소스 애니메이션 리소스는 다음 두 가지 유형의 애니메이션 중 하나를 정의할 수 있습니다. 속성 애니메이션 설정된 시간 경과에 따른 객체의 속성 값을 Animator로 수정하여 애니메

developer.android.com

 

728x90
반응형

'Android' 카테고리의 다른 글

Android UI 파편화 관련  (0) 2022.09.01
android 조이스틱  (0) 2022.03.25
AAC : navigation  (0) 2022.02.21
android ISP 연동 관련  (0) 2022.01.25
안드로이드 주소록 연락처 가져오기  (0) 2021.10.08