210202
[Kotlin] 움직이는(GIF) ProgressDialog로 로딩처리 본문
다음 사이트를 참고해서 기능을 구현했다.
먼저 사용할 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