일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- UIPresentationController
- 개발자 면접
- swift #swift keychain #keychain 사용법
- UIViewControllerTransitioningDelegate
- base64 변환
- ios
- development language
- 기존 앱
- Android
- SwiftUI
- Side Menu
- detect url
- Swift Package Manager
- swift
- url 추적
- oberve url
- 상단 탭바
- DataBinding
- pod install
- notifychanged
- 스크롤 탭
- Tuist
- url 관찰
- scrolling tab
- List
- DevelopmentRegion
- transformation.map
- ViewBuilder
- GeometryReader
- convert base64
- Today
- Total
버그 잡이
[Android] 안드로이드 애니메이션 종류 #Property #View #Transition 본문
최근 안드로이드 앱 개발을 하면서 애니메이션을 사용해보고 있다.
그런데 같은 애니메이션도 구현하는 방식이 천차만별이다.
애니메이션에 대해서 개념을 잡고 갈 필요성을 느껴 정리 해보고자 한다.
해당 블로그의 내용을 참고하여 정리했다.
애니메이션의 종류
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
'안드로이드' 카테고리의 다른 글
(실전 적용)ViewModel + LiveData로 화면 전환시 data 초기화 문제 해결하기 #configuration change (0) | 2020.04.10 |
---|---|
[Udacity android with kotlin]4. LifeCycle #안드로이드 생명주기 (0) | 2020.04.10 |
중첩리사이클러뷰 recyclerView 안에 recyclerView 넣기 #야놀자 앱 레이아웃 #nested recycelerview (2) | 2020.04.03 |
android actionbar 안에 tablayout 넣기 #scroll시 action바 숨기기 (0) | 2020.03.30 |
android 레이아웃 색 점점 진하게 하기 #그라데이션 (0) | 2020.03.18 |