-
[Android] compose에 폰트 적용하기Android 2024. 6. 17. 16:03반응형
폰트 저장하기
폰트를 사용하려면 일단 해당 폰트 파일을 저장해야 합니다. 위치는 res/font 에 저장하면 됩니다. 이 때 각 폰트의 굵기 파일도 각각 사용할 필요가 있다면 모두 저장해두면 좋습니다.
폰트 불러오기
폰트를 선언해주어야 해요. 위에서 정한 폰트를 아래와 같이 선언해주세요. 참고로 폰트 클래스는 사진과 같습니다. 이 때 Font의 weight에 각각 파일 별로 weight를 지정해주면 TextStyle을 사용할 때 원하는 weight를 줬을 때 해당 파일이 적용됩니다.
@Stable fun Font( resId: Int, weight: FontWeight = FontWeight.Normal, style: FontStyle = FontStyle.Normal, loadingStrategy: FontLoadingStrategy = FontLoadingStrategy.Blocking ): Font = ResourceFont(resId, weight, style, FontVariation.Settings(), loadingStrategy)
val Pretendard = FontFamily( fonts = listOf( Font(R.font.pretendard_light, weight = FontWeight.Light), Font(R.font.pretendard_medium, weight = FontWeight.Medium), Font(R.font.pretendard_black, weight = FontWeight.Black), Font(R.font.pretendard_bold, weight = FontWeight.Bold), Font(R.font.pretendard_extrabold, weight = FontWeight.ExtraBold), Font(R.font.pretendard_extralight, weight = FontWeight.ExtraLight), Font(R.font.pretendard_semibold, weight = FontWeight.SemiBold), Font(R.font.pretendard_regular, weight = FontWeight.Normal), Font(R.font.pretendard_thin, weight = FontWeight.Thin) ) ) val MoveSans = FontFamily( fonts = listOf( Font(R.font.movesans_light), Font(R.font.movesans_medium), Font(R.font.movesans_bold), ) ) val Gimpo = FontFamily( fonts = listOf( Font(R.font.gimpo_1, weight = FontWeight.Light), Font(R.font.gimpo_2, weight = FontWeight.Normal) ) ) val oaGothic = FontFamily( Font(R.font.oa_gothic_medium, FontWeight.Medium, FontStyle.Normal), Font(R.font.oa_gothic_extra_bold, FontWeight.ExtraBold, FontStyle.Normal) )
위와 같이 파일 별 weight을 적용하면 아래와 같이 TextStyle에 fontWeight를 줬을 때 쌍으로 맞춰놓은 파일이 적용됩니다.
TextStyle( fontFamily = fontFamily, fontWeight = fontWeight )
폰트 적용하기
위에서 얘기한 것처럼 TextStyle을 만들어서 사용할 수도 있고, Typography를 만들어서 사용할 수도 있습니다.
val Typography = Typography( titleLarge = TextStyle( fontFamily = oaGothic, fontWeight = FontWeight.ExtraBold, fontSize = 24.sp ), headlineLarge = TextStyle( fontFamily = Pretendard, fontWeight = FontWeight.Bold, fontSize = 25.sp ), bodyLarge = TextStyle( fontFamily = oaGothic, fontWeight = FontWeight.Medium, fontSize = 16.sp, lineHeight = 24.sp, letterSpacing = 0.5.sp ) ... )
반응형'Android' 카테고리의 다른 글
[Android] 프로젝트에 Android의 Hilt를 사용해보자 (0) 2024.05.12 [Android] Android 14: Broadcast Receiver와 Foreground Service 유형 정책 변경 (0) 2024.05.02 [Android] 버전 카탈로그로 Gradle 버전 관리하기 (0) 2024.04.24 [Computer Science] MVC, MVP, MVVM (0) 2024.04.04