フォント リソースは、アプリ内で使用できるカスタム フォントを定義します。個々のフォント ファイルも、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> - 要素:
- 例:
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/
に保存されている、フォントをTextView
に適用する XML ファイル:<?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" /> - 要素:
- 例:
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/
に保存されている、フォントをTextView
に適用する XML ファイル:<?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!" />