안드로이드 자바
[Android][Java] 원형 로딩바 만들기
teamnova
2023. 2. 8. 12:00
728x90
안녕하세요.
오늘은 ProgressBar를 이용해 원형 로딩바를 만들어 키고 끄는것 까지 해보겠습니다.
먼제 xml 파일입니다.(progressdialog)
<?xml version="1.0" encoding="utf-8"?>
<ProgressBar xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:alpha="0.8">
</ProgressBar>
그리고 ProgressDialog 클래스를 만들어 줍니다.
public class ProgressDialog {
private Context context;
private Dialog dialog;
public ProgressDialog(Context context){this.context = context;}
public void showDialog(){
dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.progressdialog);
dialog.getWindow().setBackgroundDrawableResource(android.R.color.transparent);
dialog.getWindow().setDimAmount(0.4f);
dialog.setCancelable(false);
WindowManager.LayoutParams params = dialog.getWindow().getAttributes();
params.width = WindowManager.LayoutParams.MATCH_PARENT;
params.height = WindowManager.LayoutParams.MATCH_PARENT;
dialog.getWindow().setAttributes(params);
dialog.show();
}
public void closeDialog() {
dialog.dismiss();
}
}
xml 파일과 클래스를 만들었으면 이제 액티비티에서 로딩바를 키고 끌 수 있습니다. 핸들러를 사용해 2초동안 로딩바가 보이게 하겠습니다.
public class MainActivity extends AppCompatActivity {
ProgressDialog progressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressDialog = new ProgressDialog(this);
progressDialog.showDialog();
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
@Override
public void run() {
progressDialog.closeDialog();
}
},2000);
}
}
ProgressDialog를 객체화 시키고 showDialog와 closeDialog 메서드를 통해 원하는 곳에 로딩바를 키고 끄실 수 있습니다.