티스토리 뷰
프로세스의 진행 상태를 중간 중간 보여줄 수 있는 가장 좋은 방법 중 하나가 Progress Bar이다. 안드로이드는 일반적으로 아래의 두 가지 Progress Bar를 사용한다.
속성 | 설명 |
막대 모양 | 작업의 진행 정도를 알려줄 수 있도록 막대 모양으로 표시 |
원 모양 | 작업이 진행 중임을 알려준다. 원 모양이 반복적으로 나타난다. |
Layout.xml에 Progress bar를 추가할 때는 <ProgressBar> 태그가 사용되는데, Progress bar가 갖는 값의 최대 범위는 max 속성으로 설정하고, 현재 값은 progress 속성으로 설정한다.
바로 한 번 예제를 확인해보자.
◎activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity" android:orientation="vertical">
<ProgressBar
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/progressBar"/>
<LinearLayout
android:orientation="horizontal"
android:layout_width="219dp"
android:layout_height="wrap_content">
<Button
android:text="보여주기"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/button" android:layout_weight="1"
android:layout_margin="5dp"
/>
<Button
android:text="닫기"
android:layout_width="wrap_content"
android:layout_height="wrap_content" android:id="@+id/button2" android:layout_weight="1"
android:layout_margin="5dp"
/>
</LinearLayout>
</LinearLayout>
◎MainActivity.java
package com.example.progressbarex;
import android.app.ProgressDialog;
import android.view.View;
import android.widget.Button;
import android.widget.ProgressBar;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
ProgressDialog dialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ProgressBar progressBar = findViewById(R.id.progressBar);
progressBar.setIndeterminate(false);
progressBar.setProgress(80);
Button button = findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog = new ProgressDialog(MainActivity.this);
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
dialog.setMessage("데이터를 확인하는 중입니다.");
dialog.show();
}
});
Button button2 = findViewById(R.id.button2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(dialog != null) {
dialog.dismiss();
}
}
});
}
}
반응형
'Mobile > Android' 카테고리의 다른 글
[Android] 화면 간 전환 2: Activity 이해하기 (0) | 2022.03.19 |
---|---|
[Android] 화면 간 전환 1: Layout Inflation 이해하기 (0) | 2022.03.19 |
[Android] Toast & Snackbar 4: 알림 대화 상자 보여주기 (0) | 2022.03.18 |
[Android] Toast & Snackbar 3: Snackbar (0) | 2022.03.18 |
[Android] Toast & Snackbar 2: Toast 모양 바꾸기 (0) | 2022.03.18 |
Comments
최근에 올라온 글
최근에 달린 댓글
TAG
- redux
- Async
- AsyncStorage
- javascript
- 인천 구월동 이탈리안 맛집
- 맛집
- 이탈리안 레스토랑
- Promise
- redux-thunk
- 정보보안기사 #실기 #정리
- await
- 인천 구월동 맛집
- react
- 파니노구스토
- react-native
- Total
- Today
- Yesterday