본문 바로가기
Android

[안드로이드] 커스텀 폰트 적용하기 (Android Custom Font)

by hyerann 2020. 5. 26.

뷰를 짜다보면 시스템 기본 폰트가 아니라 커스텀 폰트를 적용해야할때가 있죠❗️

커스텀 폰트를 적용하는 방법은 아주 간단하답니다.

우선 적용하고 싶은 폰트와 안드로이드 프로젝트를 준비해주세요.

저는 notosans를 넣어보겠습니다.

1. res 아래에 font 디렉토리를 생성합니다.

 

 

2. 폰트 파일을 복사해서 넣어줍니다.

폰트 파일 형식은 ttf와 otf가 있죠?

윈도우는 ttf, 맥은 otf를 사용하는데, 그러다보니까 안드로이드에서도 ttf를 사용해야한다고 생각하는 경우가 많습니다

하지만 안드로이드에서는 otf를 사용하는 것이 더 좋습니다.

우선 안드로이드에 ttf, otf 모두 적용이 가능한데 둘을 비교했을 때 폰트 크기가 작은 경우에 otf 형식이 더 보기좋게 그려진다고 합니다.

또한, otf의 파일 사이즈가 ttf의 절반가량이기 때문에 apk 파일 크기를 더 작게 유지할 수 있습니다.

(출처: oneday0012.tistory.com/158)

참고로 파일명이 빨간색인 이유는 깃과 연동이 된 상태라서 그렇습니다. 글씨 색상이 달라서 당황하지 마세요! 😯

 

 

3. xml 파일을 생성합니다.

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font android:font="@font/notosanscjkkr_medium" />
</font-family>

xml 파일에서 바로 적용된 모습을 확인할 수도 있습니다.

 

 

레이아웃에서 폰트를 적용할때 fontFamily라는 속성을 이용하는데요.

사실 xml 파일 없이도 otf 파일을 바로 사용이 가능합니다.

그렇다면 번거롭게 폰트마다 xml 파일을 생성하는 이유가 무엇일까요?

만약 fontFamily에 notosans otf 파일을 바로 적용한 상태에서 전체 폰트가 notosans에서 다른 폰트로 변경되었다면 어떻게 될까요?

모든 fontFamily 속성을 변경해야할 것 입니다.

하지만 xml 파일을 통해 적용을 했다면 이 xml 파일의 font 속성 딱 하나만 변경하면 끝입니다.

그러니 귀찮더라도 앞으로의 유지보수를 위해 xml 파일을 꼭 생성하는게 좋겠죠? 😊

4. 폰트를 적용합니다.

적용하고자 하는 위젯의 속성으로 fontFamily를 추가해주면 됩니다.

otf 파일과 xml 파일이 함께 뜨니 그 중 xml 파일을 선택하는 것 잊지마세요!

 

 

댓글