목차
- 안드로이드 스튜디오 앱 프로젝트 생성 예제 이전 포스팅 참고 학습
- 안드로이드 CheckBox 선택한 아이템 가져오기 예제 이전 포스팅 참고 학습
- 안드로이드 ScrollView 스크롤 처리하기 예제 이전 포스팅 참고 학습
- 안드로이드 레이아웃 XML에 Progress Bar 추가 예제
- 안드로이드 스레드 활용 및 Progress Bar 진행 예제
안드로이드 스튜디오 앱 프로젝트 생성 예제 이전 포스팅 참고 학습
이전 포스팅에서는 안드로이드 스튜디오를 사용하여 프로젝트를 생성하는 방법에 대해 알아보았습니다. 안드로이드 스튜디오에서는 다양한 프로젝트 템플릿을 제공하지만, 우리가 포스팅 예제를 해보기 위해서는 "Empty Activity" 템플릿이면 충분합니다.
오늘 포스팅 예제를 따라하기 위해 신규 앱 프로젝트를 생성해주세요. 만약 아직 앱 신규 프로젝트 생성 방법을 모르신다면 아래의 이전 포스팅 링크를 참고하여 학습해주세요.
2023.08.22 - [Android] - [안드로이드] 프로젝트 생성 예제(로그출력, TextView)
안드로이드 CheckBox 선택한 아이템 가져오기 예제 이전 포스팅 참고 학습
또한 안드로이드 앱에서 CheckBox를 사용할 때, 사용자가 선택한 항목들을 가져와야 할 때가 있습니다. 이를 위해서는 CheckBox 요소들을 관리하는 코드를 작성해야 합니다. 이전 포스팅에서는 이러한 CheckBox의 상태를 확인하여 선택한 아이템을 가져오는 예제를 알아보았습니다.
만약 프로그래스 바와 함께 CheckBox를 활용하셔야 한다면 아래 링크를 참고해주세요.
2023.08.22 - [Android] - [안드로이드] CheckBox 체크 박스 예제(선택 아이템 가져오기)
안드로이드 ScrollView 스크롤 처리하기 예제 이전 포스팅 참고 학습
마지막으로 안드로이드에서 긴 아이템들을 한 눈에 보기 위하여 ScrollView를 사용합니다. 화면에 표시되는 뷰보다 더 많은 컨텐츠를 표시하려는 경우 사용됩니다. 이러한 내용의 포스팅을 이전에 다뤘습니다.
프로그래스 바 예제와 별개로 안드로이드 내에서 스크롤뷰를 다루는 방법이 궁금하시다면 아래 링크를 참고해주세요.
2023.08.22 - [Android] - [안드로이드] ScrollView 스크롤 처리하기 예제(텍스트, 이미지 추가)
안드로이드 레이아웃 XML에 Progress Bar 추가 예제
Progress Bar는 작업의 진행 상태를 시각적으로 나타내기 위해 사용됩니다. 아래는 레이아웃 XML 파일에 Progress Bar를 추가하는 방법과 필요한 속성들을 설정하는 예제입니다. max 값에는 최대값을 입력해줍니다. 오늘 예제는 0%에서 100%이기때문에 100을 입력합니다.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<ProgressBar
android:id="@+id/progressBar"
style="?android:attr/progressBarStyleHorizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_margin="20dp"
android:max="100"
android:progress="0" />
</LinearLayout>
안드로이드 스레드 활용 및 Progress Bar 진행 예제
아래는 안드로이드 앱에서 오랜 시간이 걸리는 작업을 수행할 때, 스레드를 차단하지 않고 작업의 진행 상태를 보여주기 위해 Progress Bar를 활용하는 예제입니다. 작업을 백그라운드 스레드에서 실행하고 스레드에서 진행 상태를 업데이트하여 사용자가 실시간으로 업데이트되는 듯한 느낌을 줄 수 있습니다.
package com.example.blog_test_app;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Looper;
import android.os.Message;
import android.os.SystemClock;
import android.widget.ProgressBar;
import androidx.annotation.NonNull;
public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
private int progressStatus = 0;
private Handler handler = new Handler(Looper.getMainLooper()) {
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if (msg.what == 0) {
progressBar.setProgress(progressStatus);
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
progressBar = findViewById(R.id.progressBar);
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
while (progressStatus < 100) {
progressStatus++;
handler.sendEmptyMessage(0);
SystemClock.sleep(50); // 시각적 효과를 위한 딜레이
}
}
});
thread.start();
}
}