다음과 같이 res 폴더 아래에 font폴더를 만든 후 font폴더 아래와 같은 방식으로 새로운 폰트를 추가하자.
폰트의 파일명은 무조건 소문자 영어와 숫자로만 이루어져야 한다. 특수문자와 대문자는 인식이 안된다.
즉, “goryeongstrawberrynormal80.ttf”와 같이 써야 한다.
아주 오래전부터 이러한 제한이 있었던 것으로 아는데, 왜 아직까지도 이러한 제한을 고치지 않는지 의문이다.
ui.theme 폴더에 밑에 FontFamily.kt 파일을 만들었다.
폰트패밀리는 다음과 같은 방식으로 정의한다.
package com.dklaw.gogo2.ui.theme import androidx.compose.ui.text.font.Font import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import com.dklaw.gogo2.R val fontGoryeong = FontFamily( Font(R.font.goryeongstrawberry, FontWeight.Normal), ) val fontkjcGothic = FontFamily( Font(R.font.kimjungchulmyungjoregular, FontWeight.Normal), )
다음과 같은 방식으로 위에서 정의한 폰트 패밀리를 사용하면 된다.
@Composable fun NormalTextComponent(value : String) { Text( text = value, modifier = Modifier.fillMaxWidth().heightIn(min = 80.dp), style = TextStyle(fontSize = 18.sp, fontWeight = FontWeight.Normal, fontStyle = FontStyle.Normal, fontFamily = fontGoryeong) ) }
다음과 같이 폰트가 잘 적용되는 것을 알 수 있다.