728x90
안녕하세요
이번시간에는 안드로이드스튜디오의 Chronometer 위젯을 사용하여 간단한 스톱워치 기능을 구현해보겠습니다.
Chronometer 위젯은 별도의 Handler없이도 시간을 측정할 수 있어 편리하게 사용할 수 있습니다.
우선 전체 코드입니다.
MainActivity.java
public class MainActivity extends AppCompatActivity {
private Chronometer chronometer;
private Button startButton, stopButton, resetButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
chronometer = findViewById(R.id.chronometer);
startButton = findViewById(R.id.btn_start);
stopButton = findViewById(R.id.btn_stop);
resetButton = findViewById(R.id.btn_reset);
startButton.setOnClickListener(v -> chronometer.start());
stopButton.setOnClickListener(v -> chronometer.stop());
resetButton.setOnClickListener(v -> {
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.start();
});
}
}
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center"
android:padding="20dp">
<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="24sp" />
<Button
android:id="@+id/btn_start"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="시작" />
<Button
android:id="@+id/btn_stop"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="일시정지" />
<Button
android:id="@+id/btn_reset"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="초기화" />
</LinearLayout>
Chronometer 위젯을 사용하면, handler 없이 간단하게 시간을 측정할 수 있어 다양하게 활용이 가능합니다.
Chronometer의 주요 메서드는 다음과 같습니다.
메서드 | 설명 |
start() | Chronometer를 시작함 (경과 시간 표시) |
stop() | Chronometer를 멈춤 (멈춘 시점 유지) |
setBase(long baseTime) | 기준 시간을 설정함 (초기화, 특정 시간부터 시작 가능) |
getBase() | 현재 기준 시간을 반환 (경과 시간 계산에 사용) |
setFormat(String format) | 시간을 원하는 형식으로 변경 (Time: %s 형태 가능) |
setOnChronometerTickListener (Chronometer.OnChronometerTickListener listener) |
매 초마다 이벤트를 감지하여 특정 작업 수행 가능 |
시연 영상입니다.
'안드로이드 자바' 카테고리의 다른 글
[JAVA][Android] 앱 내에서 배터리 상태 나타내기 (0) | 2025.02.20 |
---|---|
[JAVA][Android] 터치 이벤트로 생성한 커스텀 View를 WebView에 출력하기 (2) | 2025.02.19 |
[JAVA][Android] CollapsingToolbarLayout 상단바 확장될 때만 클릭할 수 있는 버튼 만들기 (0) | 2025.02.16 |
[JAVA][Android] CollapsingToolbarLayout 상단바 확장/축소에 따라 상태바 색상 변경하기 (0) | 2025.02.16 |
[Java][Android] 터치 이벤트 좌표 추적하기 (0) | 2025.02.13 |