본문 바로가기
Android 개발/Android

Android XML에서 Custom Font 사용하기(SupportLibrary26 이상)

by Developer88 2017. 10. 31.
반응형

SupportLibrary26이 발표되면서, 드디어 XML에서 Font를 사용할 수 있게 되었습니다.

(벌써 27버전이 발표되었고, AndroidStudio는 3.0릴리즈 버전으로 업데이트 되었습니다.)

더이상 TypeKit은 사용할 필요가 없게 되었네요.

오늘은 xml에서 CustomFont를 사용하는 방법에 대해서 정리해 보겠습니다.



1. SupportLibrary 추가하기


SupportLibrary 25.4.0부터는 Maven Repository를 이용하는데요.

기존의 jcenter()밑에 maven { url "https://maven.google.com" } 만 추가해주면 됩니다.



26이상의 최신 Support Library를 추가해 주어야 하구요.

build.gradle의 dependency에 support라이브러리들의 버전이,

아래와 같이 26이상인지 확인해 주시면 됩니다.



2. Font 폴더에 폰트 복사


다음으로는, 아래와 같이 Font를 설치할 디렉토리를 생성해 줍니다.

(이미 있다면 생략해도 됩니다)



이미지와 같이, font디렉토리라는 이름으로 ok해주면 됩니다.

이 Font Directory에 font를 추가해 줍니다.




이제, 이 폴더에 폰트 파일을 복사해 주는데요.

한가지 주의하실 점은, 폰트의 파일이름이 Android리소스 파일의 형식을 따라야 한다는 점입니다.

만약, 대문자를 사용한다면 소문자로 변경해서 복사해 주세요~.



3. Font 적용하기


3-1. XML에서 폰트 적용하기


font파일을 복사하였지만, 여기서 리소스 파일과 관련된 작업이 끝난것은 아닌데요.


SupportLibrary를 사용하여서, Custom폰트를 사용하기 위해서는,

XML파일을 하나 더 생성해 주어야 합니다.


font폴더에서 우측마우스 버튼을 눌러서, 
아래 이미지와 같이 XML 파일을 추가해줍니다.
이름을 추가한 후 ok를 눌러줍니다.
(android studio3.0이 아니라면, 아래와 같은 메뉴가 보이지 않을 수 있습니다.
업그레이드 해주세요~)



상하위 호환성을 위해서,

android와 app이라는 nameSpace를 사용해서,

중복으로 Style이나 font파일을 지정해 줘야 합니다.

(아래에서 설정하지는 않았지만, fontWeight속성도 지정할 수 있습니다.)




이제, CustomFont를 사용할 TextView에,

위에서 생성한 xml의 fontFamily를 적어줍니다.

간단하게, 1줄만 추가해 주면 되는데요.


주의할 점은, 폰트파일명을 적을 것이 아니라,

위에서 생성한 xml파일의 이름을 설정해 주어야 한다는 점입니다.

(그렇지 않으면, 하위 호환성에 문제가 생길 수 있습니다.)




3-2. JAVA파일 에서 폰트 적용하기


XML뿐만이 아니라, Java에서도 설정하는 방법도 있습니다.

생성한 XML파일을 가져와서,

적용할 TextView에 setTypeFace를 해주면 됩니다.




이상으로, Custom폰트를 사용하는 방법에 대해서 알아보았습니다.

그동안 써오던 TypeKit과도 이별을 할 시간이군요.

(TypeKit의 업데이트가 원활히 되었다면, 계속 사용할 수도 있었겠지만,

아쉽게도, SupportLibrary26에서 부터는 빌드시에 Exception을 발생시키고 있습니다)


728x90

댓글