앱 만들기/안드로이드

안드로이드 외부 폰트 적용하는 방법-2

나도 처음이야 2020. 6. 15.

https://soo0100.tistory.com/1108

 

안드로이드 외부 폰트 적용하는 방법

안드로이드에서 지원하는 폰트 이외에 개발자가 외부 폰트를 자신의 앱에다가 적용하려고 할 때 하기처럼 작업을 해주자. 우선, 프로젝트 폴더의 main 폴더 안에 assets 라는 폴더를 만든다. 그리��

soo0100.tistory.com

지난 시간 

안드로이드 외부 폰트 적용하는 방법을 다루어 보았습니다.

그런데, Android 8.0 (API level 26)  이후 모델부터는 하기 API를 적용하는 것을 권장하고 있습니다.

하기 개발자 사이트를 참고 바랍니다.

https://developer.android.com/guide/topics/ui/look-and-feel/fonts-in-xml

 

Fonts in XML  |  Android 개발자  |  Android Developers

Android 8.0 (API level 26) introduces a new feature, Fonts in XML, which lets you use fonts as resources. You can add the font file in the res/font/ folder to bundle fonts as resources. These fonts are compiled in your R file and are automatically availabl

developer.android.com

그럼, 위 내용을 가지고 소스에 직접 적용을 해보겠습니다.

필자는 무료 인 독도체 와 쿠키런 폰트를 준비 했습니다. 각자 원하시는 폰트 파일을 준비하시기 바랍니다.

1. res-font 폴더 를 만들고 그곳에 폰트를 넣어주자.

이렇게 추가한 폰트는 안드로이드 스튜디오에서도 미리 폰트를 확인 할 수 있습니다. 하기처럼요. 

font 이름은 소문자로 해주세요  * 주의

그럼, 폰트를 앱 내에 적용 해 볼까요?  먼저 XML 으로 설정하는 방법입니다.

2. 화면 구성 XML에서 fontfamily 속성을 선택하고, 추가한 폰트를 설정한다. - 끝 -

매우 간단합니다. 위 왼쪽 미리 보기 영역에 쿠키런 볼드 체가 적용된 것을 확인할 수 있습니다.

이를 소스상에서 적용시는 하기와 같이 TextView 에 폰트 설정을 해주면 끝~

Typeface typeface = getResources().getFont(R.font.myfont);
textView
.setTypeface(typeface);

 

참고로, 구글의 방침처럼, 4.1 버전 이상에서 Res - font 폴더를 만들어서 위와 같이 사용하기 위해서는 Support Library 를 사용해야 되며, 소스에 구현은 하기 처럼 해야한다.

The Support Library 26.0 provides support to the Fonts in XML feature on devices running Android 4.1 (API level 16) and higher.

Typeface typeface = ResourcesCompat.getFont(context, R.font.myfont);

 

그런데, 하나의 폰트내에 폰트 스타일(Bold, Italy ) 에 따라서 폰트를 설정하고 싶다면,,,

font 폴더내에 font-familiy 로 폰트를 묶어서 관리 할 수 있다. 

이것도 간단하니 해봅시다.

1. Res-font 폴더에 폰트 관리를 위한 XML 파일을 만듭니다.

   필자는 font1942 라고 이름을 지어봤습니다. 

2. 해당 XML 파일을 구성합니다.

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
   
<font
       
android:fontStyle="normal"
       
android:fontWeight="400"
       
android:font="@font/lobster_regular" />
   
<font
       
android:fontStyle="italic"
       
android:fontWeight="400"
       
android:font="@font/lobster_italic" />
</font-family>

 

구글에서 제공하는 가이드는 위와 같습니다.

fontStyle 은 normal 과 italic 만 지원합니다.

Weight 는 글자의 굵기로 400 이 기본 이며, 900이 가장 두껍습니다.

font 에는 normal 과 italic 타입일때 보여질 폰트를 입력합니다.

해당 내용은 하기 링크를 참조 바랍니다.

https://developer.android.com/guide/topics/resources/font-resource

 

글꼴 리소스  |  Android 개발자  |  Android Developers

글꼴 리소스는 앱에서 사용할 수 있는 맞춤 글꼴을 정의합니다. 글꼴은 개별 글꼴 파일 또는 글꼴 모음이라고 하는 글꼴 파일 모임일 수 있으며 XML로 정의됩니다. 또한, XML로 글꼴을 정의하는 방

developer.android.com

실제 소스에선 이렇게 구현을 해보았습니다.

android: , app: 은 각각  API 레벨 26 지원과 하위 버전 지원을 위해 (Android 4.1 (API level 16) and higher.)

사용합니다.

필자는 테스트 차원에서 쿠키런 폰트를 normal 에 독도 폰트를 italic 에 입력해보았습니다.

그렇다면, 속성 탭에서 폰트의 속성에 따라서 

자동으로 font 가 보여지게 해야 겠죠?  res-values-styles.xml 파일에 하기처럼 스타일을 정의합니다. 

위와 같이 작업을 하면, Textappearance 속성에 사용자 스타일이 추가가 됩니다. 하기 처럼요.

그럼, Text style 을 지정해 볼까요?

Bold 와 Italic 에 따라 테스트로 설정해 놓은 쿠키 런, 독도 체가 보여지고 있습니다.

쿠키 런
독도체

감사합니다.

반응형

댓글