글꼴 리소스

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

또한, XML로 글꼴을 정의하는 방법을 참고하거나 다운로드 가능한 글꼴을 사용하세요.

번들 글꼴

글꼴은 앱 리소스로 묶을 수 있습니다. 글꼴은 R 파일에서 컴파일되고 자동으로 시스템에서 리소스로 사용할 수 있습니다. 그런 다음 font 리소스 유형의 도움을 받아 이 글꼴에 액세스할 수 있습니다.

파일 위치:
res/font/filename.ttf(.ttf, .ttc, .otf 또는 .xml)
파일 이름은 리소스 ID로 사용됩니다.
리소스 참조:
XML의 경우: @[package:]font/font_name
문법:
<?xml version="1.0" encoding="utf-8"?>
<font-family>
  <font
    android:font="@[package:]font/font_to_include"
    android:fontStyle=["normal" | "italic"]
    android:fontWeight="weight_value" />
</font-family>
요소:
<font-family>
필수사항. 이 요소는 루트 노드여야 합니다.

속성 없음

<font>
글꼴 모음 내에 단일 글꼴을 정의합니다. 하위 노드를 포함하지 않습니다.

속성:

android:fontStyle
키워드. 글꼴 스타일을 정의합니다. 이 속성은 글꼴이 글꼴 스택에 로드되고 글꼴 헤더 표의 모든 스타일 정보를 재정의할 때 사용됩니다. 이 속성을 지정하지 않으면 앱은 글꼴 헤더 표의 값을 사용합니다. 상수 값은 normal 또는 italic입니다.
android:fontWeight
정수. 글꼴의 두께입니다. 이 속성은 글꼴이 글꼴 스택으로 로드되고 글꼴의 헤더 표에 있는 모든 두께 정보를 재정의할 때 사용됩니다. 속성 값은 100에서 900까지 100의 배수여야 합니다. 이 속성을 지정하지 않으면 앱은 글꼴 헤더 표의 값을 사용합니다. 가장 일반적인 값은 일반 두께가 400, 굵은 체의 두께가 700입니다.
예:
res/font/lobster.xml에 저장된 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>

res/layout/에 저장된 XML 파일로, 글꼴을 TextView에 적용합니다.

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />

다운로드 가능한 글꼴

다운로드 가능한 글꼴 리소스는 앱에서 사용할 수 있는 맞춤 글꼴을 정의합니다. 이 글꼴은 앱 자체에서는 사용할 수 없습니다. 이 글꼴은 글꼴 제공업체에서 가져옵니다.

파일 위치:
res/font/filename.xml 파일 이름은 리소스 ID입니다.
리소스 참조:
XML의 경우: @[package:]font/font_name
문법:
<?xml version="1.0" encoding="utf-8"?>
<font-family
    android:fontProviderAuthority="authority"
    android:fontProviderPackage="package"
    android:fontProviderQuery="query"
    android:fontProviderCerts="@[package:]array/array_resource" />
요소:
<font-family>
필수사항. 이 요소는 루트 노드여야 합니다.

속성:

android:fontProviderAuthority
문자열. 필수사항. 글꼴 요청을 정의하는 글꼴 제공업체의 권한입니다.
android:fontProviderPackage
문자열. 필수사항. 요청에 사용될 글꼴 제공업체의 패키지 이름입니다. 제공업체의 ID를 확인하는 데 사용됩니다.
android:fontProviderQuery
문자열. 필수사항. 글꼴의 문자열 쿼리. 이 문자열의 형식에 관한 글꼴 제공업체의 문서를 참고하세요.
android:fontProviderCerts
배열 리소스. 필수사항. 이 제공업체에 서명하는 데 사용되는 인증서의 해시 집합을 정의합니다. 제공업체의 ID를 확인하는 데 사용되며 제공업체가 시스템 이미지의 일부가 아닌 경우에만 필요합니다. 값은 단일 목록(문자열 배열 리소스) 또는 목록 중 하나의 목록(배열 리소스)을 가리킬 수 있으며 각각의 개별 목록은 서명 해시 모음을 나타냅니다. 이러한 값은 글꼴 제공업체의 문서를 참고하세요.
예:
res/font/lobster.xml에 저장된 XML 파일:
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    android:fontProviderAuthority="com.example.fontprovider.authority"
    android:fontProviderPackage="com.example.fontprovider"
    android:fontProviderQuery="Lobster"
    android:fontProviderCerts="@array/certs">
</font-family>

인증서 배열을 정의하는 res/values/에 저장된 XML 파일입니다.

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="certs">
      <item>MIIEqDCCA5CgAwIBAgIJA071MA0GCSqGSIb3DQEBBAUAMIGUMQsww...</item>
    </string-array>
</resources>

res/layout/에 저장된 XML 파일로, 글꼴을 TextView에 적용합니다.

<?xml version="1.0" encoding="utf-8"?>
<EditText
    android:fontFamily="@font/lobster"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Hello, World!" />