| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |
- 종속항목삽입
- kotlin
- 자바
- 데이터바인딩
- 안드로이드 스튜디오
- 안드로이드 스튜디오 JAVA
- include태그
- 안드로이드로딩창
- 프론트엔드
- SpringBoot
- SpringWebFlux
- 리사이클러뷰
- Hilt
- glide
- 공공데이터포털리사이클러뷰
- 안드로이드스튜디오
- hilt오류
- 안드로이드 스튜디오 API
- include이벤트처리
- Today
- Total
내일은개발왕
[안드로이드 스튜디오] ProgressBar가..죽었네? 로딩창 직접 만들자 본문

ProgressDialog가 더 이상 사용 안된다. HCI 과목 팀플하다 팀원이 짠 코드 보니 저게 죽어있더라..
그리고 디자인을 따로 적용시켜야 했었기에, 커스텀해서 사용하기로 했다. 근데 어캐해야할지 모르겠어서 ㅎ..

내가 원하는 디자인은 위 이미지와 같은 로딩창이었다.
그래서 대체할만한 것을 찾고 있었는데, StackOverFlow에 좋은 방법이 있길래 이걸 사용했다.
1. 로딩창 xml 만들기
일단 사용할 xml을 만들어주자
이건 뭐 설명할 없으니 이미지랑 코드만 두겠다. 로딩 애니메이션을 넣고 싶었어서, SpinKit를 사용했다.

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background_white">
<ImageView
android:id="@+id/imageView3"
android:layout_width="200dp"
android:layout_height="230dp"
android:background="@drawable/background_white"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<com.github.ybq.android.spinkit.SpinKitView
android:id="@+id/spinkit_progress"
style="@style/SpinKitView.DoubleBounce"
android:layout_width="80dp"
android:layout_height="90dp"
android:layout_marginBottom="38dp"
app:SpinKit_Color="@color/main_color"
app:layout_constraintBottom_toTopOf="@+id/textView20"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
<TextView
android:id="@+id/textView20"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="30dp"
android:text="AI가 열심히 첨삭중이에요."
android:fontFamily="@font/pretendard_medium"
android:textSize="14sp"
android:textColor="@color/black"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
SpinKit를 사용하고 싶다면 gradle에 아래 코드를 추가하면 된다.
val SpinKitVersion = "1.4.0"
implementation("com.github.ybq:Android-SpinKit:$SpinKitVersion")
2. dialog 코드 만들기
Dialog를 상속받아서 코드를 작성한다. 근데 왜 Dialog를 사용해서 보여주는 것인가? 싶었다.
이유를 좀 생각해봤는데, 아무래도 커스텀이 쉽고 dismiss를 통해 쉽게 사용할 수 있어서 그런 것 같다.
package com.example.maketeam_app.base
import android.annotation.SuppressLint
import android.app.AlertDialog
import android.app.Dialog
import android.content.Context
import android.graphics.Color
import android.graphics.drawable.ColorDrawable
import android.os.Bundle
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.ProgressBar
import androidx.fragment.app.DialogFragment
import com.example.maketeam_app.R
import com.github.ybq.android.spinkit.style.DoubleBounce
/**
* progressDialog 지원중지로, Dialog 사용해서 만듬
* 참고 : https://stackoverflow.com/questions/45373007/progressdialog-is-deprecated-what-is-the-alternate-one-to-use
* */
class BaseProgressDialog {
companion object {
@SuppressLint("InflateParams")
fun progressDialog(context : Context) : Dialog {
val dialog = Dialog(context)
val inflate = LayoutInflater.from(context).inflate(R.layout.dialog_progress_loading, null)
val progressBar = inflate.findViewById<ProgressBar>(R.id.spinkit_progress) //만들어둔 xml과 연결시켜주기
val doubleBounce = DoubleBounce() //spinkit 사용하기 위해, 관련 코드 추가
progressBar.indeterminateDrawable = doubleBounce
dialog.setContentView(inflate)
dialog.setCancelable(false)
dialog.window!!.setBackgroundDrawable(
ColorDrawable(Color.TRANSPARENT)) //배경색 투명하게 해주기
return dialog
}
}
}
주석으로 설명을 간단하게 적어두긴 했는데, 어려운건 없다.
3. 불러와서 사용하기
var dialog = BaseProgressDialog.progressDialog(requireContext()) //dialog선언
dialog.show()// 보여주길 원할때
dialog.dismiss()//종료하길 원할때
이러면 끝!
ProgressDialog is deprecated.What is the alternate one to use?
I have come across to see that ProgressDialog is now deprecated. What would be alternate one to use in place of that apart from ProgressBar. I am using android studio version 2.3.3. ProgressDialog
stackoverflow.com
https://developer.android.com/reference/android/app/Dialog
Dialog | Android Developers
developer.android.com
'프론트앤드' 카테고리의 다른 글
| [안드로이드 스튜디오] Hilt에 대해 알아보자(1) - 종속 항목 삽입이 뭔데? (2) | 2024.07.18 |
|---|---|
| [안드로이드 스튜디오] include 태 그 조 아. (1) | 2024.03.03 |
| 안드로이드 스튜디오 - 리사이클러뷰를 이용해서 사용자가 입력한 값 대로 공공데이터 포털 API에서 결과값 가져오기 - (2) (0) | 2023.06.24 |
| 선박 입출항 조회 기능 영상 (0) | 2023.01.17 |
| 안드로이드 스튜디오 - 리사이클러뷰를 이용해서 사용자가 입력한 값 대로 공공데이터 포털 API에서 결과값 가져오기 - (1) (0) | 2023.01.17 |