글꼴 리소스

글꼴 리소스는 앱에서 사용할 수 있는 맞춤 글꼴을 정의합니다. 글꼴은 개별 글꼴 파일 또는 글꼴 모음이라고 하는 글꼴 파일 모임일 수 있으며 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>
    

글꼴을 TextView에 적용하는 XML 파일은 res/layout/에 저장되며 그 내용은 다음과 같습니다.

    <?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>
    

인증서 배열을 정의하는 XML 파일은 res/values/에 저장되며 그 내용은 다음과 같습니다.

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

글꼴을 TextView에 적용하는 XML 파일은 res/layout/에 저장되며 그 내용은 다음과 같습니다.

    <?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!" />