일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 스튜디오 인터넷 연결 안되어 있을 때
- 안드로이드 스튜디오 커스텀 다이얼로그
- LifeCycle
- Thread
- savedinstancestate
- 안드로이드 스튜디오 인터넷 연결 확인
- 안드로이드 스튜디오 style
- 이중for문 사용 안하기
- apache란
- 다른 객체 리스트의 비교
- 디자인 패턴 예제
- 안드로이드 스튜디오 custom dialog
- 자바 스레드 예제
- 안드로이드 디자인패턴
- 리사이클러뷰 아이템 재사용
- recyclerview item recycle
- 객체지향 프로그래밍 5가지 원칙
- 안드로이드 스튜디오 반복되는 레이아웃 코드
- 아파치란
- 안드로이드 스튜디오 tts
- hilt error
- edittext 연결
- 아파치 엔진엑스
- java
- apache nginx
- AAC
- 변수
- dagger error
- Kotlin
- java thread 예제
- Today
- Total
Sam Story
2024-11-10 LottieAnimationView 본문
안드로이드 애니메이션 효과에 대해서 좀 찾아보다가
굉장히 유용해보이는 라이브러리를 발견해 간단히 포스팅 해보려한다.
기존에 사용해봤던 애니메이션 효과로는
XML 파일을 만들어서 효과를 View에 적용하는 방식을 사용했었다.
Scale,Lotate,Translate,Alpha 등 여러 속성들을 사용하여
View에 애니메이션 효과를 적용할 수 있었다.
Airbnb에서 제공하는 Lottie 라이브러리를 사용하면
Lottie는 JSON 기반의 애니메이션 파일을 실시간으로 렌더링하는 벡터 애니메이션이다.
벡터 기반이라 용량이 작고, 오픈소스 라이브러리로 별도의 변환이 필요 없어 편리하게 사용할 수 있다는 장점이 있다.
아래 사이트에서 다양한 Lottie 파일을 무료로 다운로드 할 수 있다.
Featured Free Lottie Animations - Curated Motion Designs
Explore our featured free Lottie animations, handpicked for quality and creativity. Discover free animations to enhance your projects with stunning motion graphics.
lottiefiles.com
예제
의존성 추가를 먼저 해준다.
implementation 'com.airbnb.android:lottie:5.0.2'
위 사이트에서 다운 받은 JSON 파일을 res 폴더 > raw 폴더를 만들고 JSON 파일을 추가해준다
레이아웃 파일에 LottieAnimationView를 추가해준다.
<!-- Lottie 라이브러리 이용한 애니메이션효과 적용-->
<com.airbnb.lottie.LottieAnimationView
android:id="@+id/lottieAnimationViewWeather"
android:layout_width="200dp"
android:layout_height="200dp"
app:lottie_autoPlay="true"
app:lottie_loop="true"
app:lottie_rawRes="@raw/animation_rain"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@id/textViewLocation"
app:layout_constraintBottom_toTopOf="@id/textViewTemperature"
app:lottie_repeatCount="3"/>
lottie_autoPlay = 바로실행 여부
lottie_loop = 반복재생 여부
lottie_rawRes = 파일 위치
lottie_repeatCount = 최초 실행 후 반복 횟수
AnimatorListener을 추가해줘서 애니메이션의 시점마다 코드를 작성할 수 있다.
binding.lottieAnimationViewWeather.addAnimatorListener(object: Animator.AnimatorListener{
override fun onAnimationStart(animation: Animator) {
// 애니메이션 시작할 때
}
override fun onAnimationEnd(animation: Animator) {
// 애니메이션 끝날 때
}
override fun onAnimationCancel(animation: Animator) {
// 애니메이션 취소될 때
}
override fun onAnimationRepeat(animation: Animator) {
// 애니메이션 최초 시작 후 반복할 때
}
})
실행결과
이런 라이브러리를 사용하면 다양한 앱에 적용할 수 있을것 같고
시점마다 코드를 작성할 수 있는 리스너를 제공해주는것도 굉장히 편한것 같다.
'공부기록' 카테고리의 다른 글
2024-12-18 조건문을 좀 더 간결하게 작성 (1) | 2024.12.18 |
---|---|
2024-10-27 앱 다크모드 특정색 변경 (1) | 2024.10.27 |
2024-10-22 버튼 배경 그라데이션 처리 (2) | 2024.10.22 |
2024-09-04 컴포즈 캘린더뷰 구현해보기 (2) | 2024.09.04 |
2024-08-31 textWatcher를 이용한 EditText Text 공유 (0) | 2024.08.31 |