Google は、黒人コミュニティに対する人種平等の促進に取り組んでいます。取り組みを見る

フォント リソース

フォント リソースは、アプリ内で使用できるカスタム フォントを定義します。個々のフォント ファイルでも、XML 内で定義したフォント ファイルのコレクション(フォント ファミリー)でも、フォントとして使用できます。

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>
フォント ファミリー内の 1 つのフォントを定義します。子ノードは格納しません。

属性:

android:fontStyle
キーワード。フォント スタイルを定義します。この属性は、フォントをフォント スタックにロードする際に使用され、フォントのヘッダー テーブル内のスタイル情報をオーバーライドします。この属性を指定しなかった場合、アプリは、フォントのヘッダー テーブル内の値を使用します。定数値は、normalitalic です。
android:fontWeight
整数。フォントの太さ。この属性は、フォントをフォント スタックにロードする際に使用され、フォントのヘッダー テーブル内の太さ情報をオーバーライドします。属性値は、100 の倍数で、100 から 900 までの正数にする必要があります。この属性を指定しなかった場合、アプリは、フォントのヘッダー テーブル内の値を使用します。最も一般的な値は、通常の太さが 400 で、太字の太さが 700 です。
例:
次の XML ファイルを res/font/lobster.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 が検証されます。プロバイダがシステム イメージの一部を構成していない場合に限り必須です。値としては、単一のリスト(文字列配列リソース)か、リストのリスト(配列リソース)を指定できます。各リストは、署名ハッシュのコレクションを示します。各値については、フォント プロバイダのドキュメントをご覧ください。
例:
次の XML ファイルを res/font/lobster.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!" />