Google Fontsは、ウェブやアプリのデザインにダウンロードして使用できる、1,300以上のフォントファミリーやアイコンのオープンソースの無料ライブラリです。 Android Studio 3.0以降を使用してAndroid用のアプリをデザインしている場合は、Google Playサービスからフォントをダウンロードするようにアプリを設定できます。 Android Studioは必要なXMLファイルを自動的に生成します。 XMLとJavaまたはKotlinに熟練していれば、Google Fontsをプログラムで使用することができます。 そのためには、まずXMLファイルを使って使用したいGoogle Fontsを宣言する必要があります。 その後、JavaまたはKotlinを使用してプログラムでフォントを追加する必要があります。 このWikiHowでは、AndroidでGoogle Fontsを使用する方法を説明します。
Android Studioを使う
-
Android Studioでプロジェクトを開きます。 Android Studioには、"A "と書かれた青い画像と白いアイコンがあります。 Android StudioアイコンをクリックしてAndroid Studioを起動します。 デフォルトでは、最後に作業していたプロジェクトが読み込まれます。 新しいプロジェクトを作成する場合は、「New Project」をクリックします。 既存のプロジェクトを開くには、以下の手順を使用します:
- Fileをクリックします。
- 開くをクリックします。
- プロジェクトのメイン・フォルダーを選択します。
- Ok をクリックします。
-
テキストを追加したいレイアウトXMLファイルを開きます。 Layout XMLファイルは、Androidデバイスに表示される方法でアプリのレイアウトを表示します。 Layout XMLファイルは、左側のプロジェクトツリーの "Layout "フォルダにあります。 Layout" XMLファイルがない場合は、以下の手順で作成してください。
- File(ファイル)」をクリックします。
- 新規作成にカーソルを合わせます。
- XML にカーソルを合わせます。
- XML Layout File」をクリックします。
-
テキスト・オブジェクトを追加または選択します。 レイアウト内にすでにテキスト・オブジェクトがある場合は、それをクリックして選択します。 これにより、右側に属性パネルが表示されます。 テキスト・オブジェクトを追加する必要がある場合は、以下の手順で追加してください:
- "Palette "の下にある "Text "をクリックします。
- テキストオブジェクトの種類をクリックし、レイアウトにドラッグします。
- テキストオブジェクトをクリックして選択します。
-
text "属性の横にテキストを入力します。 左側の "Attributes "パネルの "Common Attributes "の下にあります。
-
"fontFamily "の隣にあるドロップダウンメニューを開きます。 左側の "属性 "パネルの "すべての属性 "の下にあります。 すべての属性 "リストは属性パネルの一番下にあります。 すべての属性 "パネルを展開すると、リスト全体が表示されます。
-
その他のフォント」をクリックします。 ドロップダウンメニューの一番下、"fontFamily "の隣にあります。
-
Google Fonts "がソースであることを確認します。 まだ選択されていない場合は、右上の "Source" の隣にあるドロップダウンメニューを使用して "Google Fonts" を選択します。
-
フォントを選択します。 フォントは、"ダウンロード可能なフォント "の下にある "フォント "と書かれたボックスにリストされています。 フォントは、アプリで表示される方法でリストに表示されます。
-
ダウンロード可能なフォントを作成」または「フォントをプロジェクトに追加」を選択し、「OK」をクリックします。 ダウンロード可能なフォントを作成」を選択すると、アプリ内にフォントファイルを埋め込むことなく、アプリがフォントプロバイダーとインターフェイスし、フォントをダウンロードすることができます。 Add font to project "を選択すると、プロジェクトにフォントファイルが追加されます。 Android Studioがフォントを正しく表示するために必要なXMLファイルを作成します。
XMLを使用してGoogle Fontsをリソースとして宣言する
-
サポートライブラリの依存関係を追加します。 そのためには、Android Studioの "Gradle Scripts "の下にある "build.gradle "ファイル、またはプロジェクトの "app "フォルダを開きます。 dependencies {" セクションを探し、そのセクションに以下の行を追加します:実装("com.android.support:support-compat:28.0.0")
-
res/font "フォルダに新しいXMLファイルを作成する。 Google Fontsをプログラムで使いたい場合は、まずXMLを使ってGoogle Fontをリソースとして宣言する必要があります。 プロジェクトの "res "フォルダ内の "font "フォルダを探し、新しいXMLファイルを作成します。 テキストエディタや統合開発環境(IDE)を使って作成できます。 ファイルは必ず拡張子「.xml」で保存してください。
- XMLファイルには、宣言するフォントの名前を付けることができます。 使用するフォントを宣言するには、それぞれ別のXMLファイルを作成する必要があります。
- 利用可能なGoogle Fontsのリストは、次のサイトで閲覧できます。
-
ファイルの先頭にXMLエンコーディングを追加します。 これを行うには、XMLファイルの先頭に<?xml version="1.0" encoding="utf-8"?>と入力します。
-
フォント・ファミリーの属性を設定します。 フォント名」は使用したいフォントの名前に置き換えてください。 以下のコードでフォント・ファミリーの属性を設定します:<font-family xmlns:app="http://schemas.android.com/apk/res-auto" app:fontProviderAuthority="com.google.android.gms.fonts" app:fontProviderPackage="com.google.android.gms" app:fontProviderQuery="Font Name" app:fontProviderCerts="@array/com_google_android_gms_fonts_certs"> </font-family></font-family
-
values "フォルダに新しい "arrays.xml "ファイルを作成します。 values "フォルダは "res "フォルダ("/res/values/")の中にあるはずです。 "arrays.xml "という新しいXMLファイルをvaluesフォルダに追加します。このファイルには、マニフェストで取得する必要があるフォントをあらかじめ宣言します。 これは、システムがフォント プロバイダからフォントを要求して取得しようとする初回の遅延を回避するためです。
- XML ファイルの最初の行に <?xml version="1.0" encoding="utf-8"?> を必ず追加してください。
-
宣言したいフォントごとに配列を作成します。 作成した各XMLフォントファイルは、@font/font_file_nameとして参照できます。 font_file_name」を宣言したいフォントのXMLファイル名に置き換える。 宣言したいフォントごとに「<item>」タグを作成する必要があります。 以下のコード例を使って、XMLファイル内に配列を作成してください:<resources> <array name="preloaded_fonts"> <item>@font/font_file1</item> <item>@font/font_file2</item> <item>@font/font_file3</item></array> </resources> </resources
-
フォント証明書を追加します。 そのためには、"values "フォルダに "font_certs.xml "という新しいXMLファイルを作成します。 システムはこれらの証明書を使ってフォントプロバイダの身元を確認します。 証明書に関する情報についてはフォントプロバイダのドキュメントを参照し、「[証明書コード]」をフォントプロバイダが提供するコードに置き換えてください。 証明書コードは複数存在する可能性があります。 以下の コ ー ド を 「fonts_certs.xml」 フ ァ イ ルに追加 し て、 証明書を宣言 し ます:<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="certs"> <item>[証明書コード]</item> </string-array> </resources>
-
マニフェストでリソース配列を宣言します。 Android マニフェスト XML ファイルは、プロジェクトの「Main」フォルダ、または Android Studio の「Manifest」の下にあります。 次のコード行をマニフェストファイルに追加して、リソース配列を宣言します:<meta-data android:name="preloaded_fonts" android:resource="@array/preloaded_fonts" /> リソース配列を宣言します。
JavaでGoogle Fontsを使う
-
新しいフォント・リクエストを作成する。 新しいフォント・リクエストを作成する際には、フォント・プロバイダ、プロバイダを検証するためのフォント・パッケージ、フォント名(およびオプションの属性)、証明書を指定する必要があります。 次のコード行を使用して、Googleフォント用の新しいフォント要求を作成します:FontRequest request = new FontRequest( "com.google.android.gms.fonts", "com.google.android.gms", "name=[フォント名]" //"[フォント名]" を置き換えます。 //R.array.com_google_android_gms_fonts_certs);
- さらに、フォント名を指定する際に、文字列クエリを作成して、"width"("0 "より大きい)、"weight"("0 "から "1000 "の間)、および "italic"("0 "はno、"1 "はyes)といったフォントプロパティを指定することができます。例えば、"name=Open Sans&weight=800&italic=0" のようにします。
- アセットとしてダウンロードしたいフォントは、必ずXMLを使って宣言してください。
-
FontsContract.FontRequestCallback」クラスの新しいインスタンスを作成します。 以下のコードを使用して、「FontsContract.FontRequestCallback」クラスの新しいインスタンスを作成します:FontsContract.FontRequestCallback callback = new FontsContract.FontRequestCallback() { FontContract.FontRequestCallback()
-
onTypefaceRetrieved()」メソッドをオーバーライドします。 フォント要求が完了すると、フォントを受け取ります。 フォントが取得されたら、どのようにフォントを適用するか、独自のコードを追加する必要があります。 以下のコードで "onTypefaceRetrieved() "メソッドをオーバーライドします:@Override public void onTypefaceRetrieved(Typeface typeface) { // ここに、フォントをどのように適用したいか、独自のコードを追加する。
-
onTypefaceRequestFailed() "メソッドをオーバーライドする。 フォントリクエストでダウンロードしたフォントの取得に失敗した場合、これにより失敗した理由についての情報を取得し、フォントリクエストが失敗した場合にどうしたいのか、独自のコードを追加することができます。 以下のコードを使用して、"onTypefaceRequestFailed()" メソッドをオーバーライドします:@Override public void onTypefaceRequestFailed(int reason) { // リクエストが失敗した場合のコードをここに追加する;
-
FontsContract.requestFont() "メソッドを呼び出します。 これは、フォントがキャッシュにあるかどうかをチェックします。 ない場合は、フォント・プロバイダにフォントを要求します。 以下のコードを使用して、"FontsContract.requestFont()" メソッドを呼び出します:FontsContract.requestFonts(context, request, handler, null, callback);
-
コードを再確認してください。 あなたのコードは次の例のようになるはずです:FontRequest fontRequest = new FontRequest("com.google.android.gms.fonts", "com.google.android.gms", "name=Alegreya Sans SC&weight=900", R.array.com_google_android_gms_fonts_certs); FontsContract.FontRequestCallback callback = new FontsContract.FontRequestCallback() { @Override public void onTypefaceRetrieved(Typeface typeface) { mTarget.applyFont(typeface); } @Override public void onTypefaceRequestFailed(int reason) { Toast.makeText(MainActivity.this, getString(R.string.request_failed, reason), Toast.LENGTH_LONG) .show(); progressBar.setVisibility(View.GONE); mRequestDownloadButton.setEnabled(true); } }; FontsContract.requestFonts(context, request, handler, null, callback);
KotlinでGoogle Fontsを使用する
-
新しいフォントリクエストを作成します。 新しいフォントリクエストを作成するには、フォントプロバイダー、プロバイダーを検証するためのフォントパッケージ、フォント名(およびオプションの属性)、証明書を指定する必要があります。 次のコード行を使用して、Googleフォント用の新しいフォント要求を作成します:val request = FontRequest( "com.google.android.gms.fonts", "com.google.android.gms", "name=[フォント名]") //"[フォント名]を置き換えます。//R.array.com_google_android_gms_fonts_certs))。
- さらに、フォント名を指定する際に、文字列クエリを作成して、"width"("0 "より大きい)、"weight"("0 "から "1000 "の間)、および "italic"("0 "はno、"1 "はyes)といったフォントのプロパティを指定することができます。例えば、"name=Open Sans&weight=800&italic=0" のようにします。
- アセットとしてダウンロードしたいフォントは、必ずXMLを使って宣言してください。
-
FontsContract.FontRequestCallback」クラスの新しいインスタンスを作成します。 以下のコードを使用して、「FontsContract.FontRequestCallback」クラスの新しいインスタンスを作成します:val callback = object : FontsContract.FontRequestCallback() { 。
-
onTypefaceRetrieved() "メソッドをオーバーライドします。 フォント要求が完了すると、フォントを受け取ります。 フォントが取得されたら、どのようにフォントを適用するか、独自のコードを追加する必要があります。 以下のコードで "onTypefaceRetrieved() "メソッドをオーバーライドします:override fun onTypefaceRetrieved(typeface: Typeface) { // ここに、フォントをどのように適用したいかのコードを追加する。
-
onTypefaceRequestFailed() "メソッドをオーバーライドする。 フォントリクエストでダウンロードしたフォントの取得に失敗した場合、これによって失敗した理由についての情報を取得し、フォントリクエストが失敗した場合にどうしたいのか、独自のコードを追加することができます。 以下のコードを使用して、"onTypefaceRequestFailed()" メソッドをオーバーライドします:override fun onTypefaceRequestFailed(reason: Int) { // リクエストが失敗した場合のコードをここに追加する。
-
FontsContract.requestFont()」メソッドを呼び出します。 これは、フォントがキャッシュにあるかどうかをチェックします。 ない場合は、フォント・プロバイダにフォントを要求します。 以下のコードを使用して、"FontsContract.requestFont()" メソッドを呼び出します:FontsContract.requestFonts(context、request、handler、null、callback)
-
コードをダブルチェックしてください。あなたのコードは次の例のようになるはずです:value request = FontRequest( "com.example.fontprovider.authority", "com.example.fontprovider", "my font", certs ) val callback = object : FontsContract.FontRequestCallback() { override fun onTypefaceRetrieved(typeface: Typeface) { mDownloadableFontTextView.typeface = typeface progressBar.visibility = View.GONE mRequestDownloadButton.isEnabled = true } override fun onTypefaceRequestFailed(reason: Int) { Toast.makeText(this@MainActivity, getString(R.string.request_failed, reason), Toast.LENGTH_LONG) .show() progressBar.visibility = View.GONE mRequestDownloadButton.isEnabled = true } } FontsContract.requestFonts(context, request, handler, null, callback)
コメント
最新を表示する
NG表示方式
NGID一覧