반응형
반응형

오늘은 간단하게 코틀린(Kotlin)에서 시계 만드는 방법을 알아보겠습니다. 대부분 개발 언어에서 시계를 만들기 위해서는 Thread를 사용해서 시간을 확인하는 로직을 많이 사용합니다. 하지만, Android에서는 Thread를 사용하지 않고 Widget만을 사용해서 시계를 구현할 수 있습니다.

특별한 코드 없이 Activity_main.xml에 TextClock를 선언하면 바로 시계가 동작합니다.

    <TextClock
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:format12Hour="hh:mm:ss a"
        android:format24Hour="hh:mm:ss"
        android:textSize="100sp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

다양한 옵션이 있지만 기본적으로 시간을 표시하는 format12hour, format24hour 함수만 확인하면 됩니다.

실행 결과 아무 작업 없시도 시계가 완성되었습니다. 초단위로 움직이지만 App에 리소스를 많이 사용하지 않습니다. 초보자가 사용하기 정말 좋은 Widget라고 생각됩니다.

TextClock에 ID를 설정하고 main함수에서 포맷을 변경 할 수 있습니다.

setFormat12Hour(CharSequence) 함수를 사용해서 출력 포맷 변경이 가능합니다.

시간만 표시할 경우는 "hh:mm:ss a"를 사용하고 연월일을 표시할 경우 "yyyy-MM-dd hh:mm:ss a"를 사용합니다.

        val clock:TextClock = findViewById<TextClock>(R.id.mainclock)

        clock.setFormat12Hour("yyyy-MM-dd hh:mm:ss a")

setFormat12Hour에 CharSequence를 입력합니다.

출력 결과 연월일 시간을 모두 한 번에 확인할 수 있습니다.

TextClock는 다른 Widget과 동일하게 text 정보를 size, color 모두 변경 가능합니다.

TextClock 속성에서 textColor을 사용해서 텍스트 색상을 변경할 수 있습니다.

출력 결과 TextClock 정보 text 색상이 변경되었습니다.

TextClock Widget은 복잡한 시간 정보를 Thread 사용 없이 쉽게 사용할 수 있는 좋은 객체입니다.

Android에서 시계가 필요하다면 힘들게 만들지 마시고 TextClock를 사용해주세요.

감사합니다.

반응형

+ Recent posts