1. HandlerTest
Handler 를 활용해 다음과 같은 화면 만들어보기
▼결과화면

▼actuvity_main.xml 코드
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="236dp"
android:layout_weight="1"
android:gravity="center"
android:text="Remove The Bomb"
android:textSize="34sp" />
<ProgressBar
android:id="@+id/progressBar"
style="@style/Widget.AppCompat.ProgressBar.Horizontal"
android:layout_width="match_parent"
android:layout_height="300dp"
android:layout_weight="1"
android:max="100"
android:progress="100" />
</LinearLayout>
▼MainActivity.java 코드
package kr.ac.dju.handlertest;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.ProgressBar;
import androidx.activity.EdgeToEdge;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.graphics.Insets;
import androidx.core.view.ViewCompat;
import androidx.core.view.WindowInsetsCompat;
public class MainActivity extends AppCompatActivity {
private ProgressBar progressBar;
private Handler handler = new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if(progressBar.getProgress()>0) {
progressBar.setProgress(progressBar.getProgress()-1);
}
handler.sendEmptyMessageDelayed(WHAT_PROGRESS, DELAY_MS);
}
};
public static final long DELAY_MS = 100;
public static final int WHAT_PROGRESS = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_main);
progressBar= (ProgressBar)findViewById(R.id.progressBar);
handler.sendEmptyMessageDelayed(WHAT_PROGRESS, DELAY_MS);
}
}'[Android] 안드로이드' 카테고리의 다른 글
| [ 안드로이드 기본 ] 터치로 움직이고 중력이 작용하는 CutomView 만들기 (0) | 2026.04.15 |
|---|---|
| [ 안드로이드 기본 ] 간단한 Thread 테스트 (0) | 2026.04.15 |
| [ 안드로이드 기본 ] 간단한 게임화면 구현 _ ScreenChange (1) | 2026.04.10 |
| [ 안드로이드 기본 ] Toast - setOnClickListener() , LogCat - 로그출력 (0) | 2026.04.10 |
| [ 안드로이드 기본 ] 버튼 setOnClickListener() 활용, 이미지뷰 동적 변경, 액티비티 생명주기(LifeCycle) (0) | 2026.04.09 |