내일배움캠프 3일차

김재현·2024년 2월 28일

오늘은 어제와 같이 미니 프로젝트를 진행하였다.

전체적인 레이아웃과 시작때 계획하였던 구상은 팀원분들의 캐리로 다 이뤘지만 ㅠㅠ

레이아웃을 완성하다 검은색 배경에 흰 글씨도 마음에 들어 팀원들과 상의를 해보니 다크모드도 가능하다고 하셔서 구현하는걸 배워보았습니다.

res/values/colors 경로에다음과 같이 파일을 생성해주면
color.xml(night)라는 파일이 생성됩니다.

이제 메뉴 툴바안에 구현을 하기위해서 기능을 넣습니다.

R.id.themeMode -> { // themeMode라는 아이템
	val item = arrayOf("라이트 모드", "다크 모드", "사용자 지정")
    val builder = AlertDialog.Builder(this) //AlertDialog = Toast 대신 사용가능 
    .setTitle("테마 변경")
    .setItem(item) { dialog, idx ->
    	if (item[idx] == "라이트 모드") {
        	changeTheme(AppCompatDelegate.MODE_NIGHT_NO)
        } else if (item[idx] == "다크 모드") {
        	changeTheme(AppCompatDelegate.MODE_NIGHT_YES)
        } else {
            changeTheme(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM)
        }
    }
builder.show()
.
.
.
private fun changeTheme(mode: Int) {
    AppCompeatDelegate.setDefaultNightMode(mode)
    // 디폴트 값을 다크모드로   

제가 백퍼센트 이해가 된게 아니라서 틀릴 수도 있습니다 ㅠㅠ

이렇게 다크모드를 구현해 주셨습니다.

제가 너무 한게 없는 것 같아 구글링을 통해 달력을 만들 수 있다는 것을 알고 기록이 가능한 달력을 현재 구현 중입니다!


[출처: https://stickode.tistory.com/139]

아직은 레이아웃 단계이지만 내일 완성되면 올려보도록 하겠습니다!

0개의 댓글