티스토리 뷰
필요한 것은 총 4가지 입니다.
- Layout 파일에 ProgressBar 배치
- ProgressBar에 적용할 애니메이션 xml 파일
- 애니메이션을 불러와서 progressBar에 적용하고 애니메이션을 실행하는 로직
- 적절한 때에 애니메이션을 취소해주는 로직
1. Layout 파일에 ProgressBar 배치
...
<ProgressBar
android:id="@+id/progressBar"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:indeterminateTint="@color/colorPrimary"
android:indeterminateDrawable="@drawable/ic_nut_yellow"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
...
원하는 곳에다가 ProgressBar를 배치해줍니다.
본 글의 내용과는 상관없지만 indeterminateTint와 indeterminateDrawable을 통해서 ProgressBar를 대체할 이미지와 색을 지정할 수 있습니다.
2. ProgressBar에 적용할 애니메이션 xml 파일
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<rotate
android:pivotX = "50%"
android:pivotY = "50%"
android:fromDegrees = "0"
android:toDegrees = "360"
android:duration = "800"
android:repeatCount="infinite"/>
</set>
저 같은 경우에는 중앙을 중심점으로 0.8초를 주기로 한 바퀴를 무한히 도는 애니메이션을 적용하였습니다.
3. 애니메이션을 불러와서 progressBar에 적용하고 애니메이션을 실행하는 로직
val clkRotate = AnimationUtils.loadAnimation(context, R.anim.rotate_clockwise)
progressBar.startAnimation(clkRotate)
4. 적절한 때에 애니메이션을 취소해주는 로직
progressBar.clearAnimation()
progressBar.visibility = View.INVISIBLE
반응형
'Programming > 안드로이드(Android)' 카테고리의 다른 글
RecyclerView의 item에 Custom View를 넣고 싶을 때 (0) | 2021.09.01 |
---|---|
[안드로이드] Data binding 사용 시 Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x0 Error (0) | 2021.06.03 |
[안드로이드] 구글 플레이 콘솔 기기 0대에서 사용 가능 (uses-feature) (0) | 2021.05.11 |
[안드로이드] 스레드와 핸들러 (feat. 깡샘) (0) | 2021.05.11 |
release 모드 Sha-1 키 얻는 법 (0) | 2021.05.07 |
댓글