210202

[Kotlin] 움직이는(GIF) ProgressDialog로 로딩처리 본문

Android

[Kotlin] 움직이는(GIF) ProgressDialog로 로딩처리

dev210202 2020. 5. 16. 13:29

다음 사이트를 참고해서 기능을 구현했다.

 

[안드로이드/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()
       }
}

 

실행결과

 

Comments