210202
[Kotlin] 움직이는(GIF) ProgressDialog로 로딩처리 본문
다음 사이트를 참고해서 기능을 구현했다.
[안드로이드/Android]GIF로 '로딩중' Dialog 띄우는 방법
서버와 통신을 하거나 기타 작업을 할때 결과를 받을때까지 사용자가 기다려야 하는 경우가 있습니다. 그럴때 우리는 Progress를 보여주면서 작업이 뭔가 진행되고 있음을 알리곤 합니다. 작업이
gun0912.tistory.com
먼저 사용할 GIF 이미지를 만들자.
1. drawable에 이미지들을 세팅
2. drawable에 xml파일로 이미지들을 모두 합쳐 GIF로 보이게 함
GIF 이미지를 다 만들면 다이얼로그를 띄워줄 layout을 만들어주자.
1. layout폴더에 xml생성
2. ImageView를 만들고 배경을 GIF 이미지로 만든 xml로 변경
그 다음 사용하고자하는 Activity에서 progress 설정을 해주자.
1. progressDialog 변수생성
private lateinit var progressDialog: AppCompatDialog
2. ProgressON, ProgressOFF 함수를 통해서 작업이 시작하고 끝날 때 사용하여 Dialog 처리
fun progressON(){
progressDialog = AppCompatDialog(this)
progressDialog.setCancelable(false)
progressDialog.getWindow()?.setBackgroundDrawable(ColorDrawable(android.graphics.Color.TRANSPARENT))
progressDialog.setContentView(R.layout.loading_dialog_custom)
progressDialog.show()
var img_loading_framge = progressDialog.findViewById<ImageView>(R.id.GIFimage)
var frameAnimation = img_loading_framge?.getBackground() as AnimationDrawable
img_loading_framge?.post(object : Runnable{
override fun run() {
frameAnimation.start()
}
})
}
fun progressOFF(){
if(progressDialog != null && progressDialog.isShowing()){
progressDialog.dismiss()
}
}
실행결과
'Android' 카테고리의 다른 글
XML에서는 text가 잘 보이는데 실제 실행 시 TextView나 다른 View의 text가 보이지 않는 오류 (0) | 2020.05.19 |
---|---|
[Kotlin] EditText의 엔터(<┘)를 완료로 바꾸기 + EditText에 내용이 없을 때 버튼을 못누르게 하기 (0) | 2020.05.19 |
[Kotlin] RecyclerView를 ListView의 단일선택처럼 사용하기 (0) | 2020.03.20 |
Kotlin 데이터 바인딩과 네비게이션을 사용하여 프래그먼트 구현 + 몇가지 오류들 해결 (0) | 2020.03.09 |
Kotlin으로 Facebook 소셜 로그인 구현 + 유저 데이터 가져오기 (0) | 2020.03.08 |
Comments