1. ホーム
  2. アンドロイド

[解決済み】android:fontFamilyの有効な値とそのマッピングは?

2022-04-18 16:11:14

質問

の回答で この質問 の値を列挙しています。 android:fontFamily と12のバリアント(下記参照)があります。これらの値はどこから来たのでしょうか?のドキュメントは android:fontFamily は、この情報をどこにも記載していません(私が確認したのは ここで および こちら ). 文字列は、Androidの スタイル.xml ファイルの様々な場所にありますが、これらはどのようにRobotoフォントにマップバックされるのでしょうか?

android 4.1 / 4.2からは、以下のRobotoフォントファミリーが利用できます。 が利用できます。

android:fontFamily="sans-serif"           // roboto regular  
android:fontFamily="sans-serif-light"     // roboto light  
android:fontFamily="sans-serif-condensed" // roboto condensed  
android:fontFamily="sans-serif-thin"      // roboto thin (android 4.2)  
android:fontFamily="sans-serif-medium"    // roboto medium (android 5.0)

と合わせて

android:textStyle="normal|bold|italic" 

12種類のバリアントが可能です。

  • レギュラー
  • イタリック
  • 太字
  • ボールド-イタリック
  • ライト
  • ライトイタリー
  • 薄型
  • シン・イタリー
  • コンデンスレギュラー
  • コンデンスイタリック
  • コンデンスボールド
  • コンデンスボールドイタリック

styles.xml のファイルには、誰かがこれをフォントファミリーとしてリストアップしています。

<item name="android:fontFamily">Roboto-Regular.ttf</item>

私たちのアプリのテーマを正しく設定し(fontFamilyを正しく使用することを含む)、私がファイルを見る前に作成されたいくつかのスタイルにあるすべての冗長性を削除したいと思います。

解決するには?

<ブロッククオート

これらの値はどこから来るのでしょうか?android:fontFamilyのドキュメントには、この情報はどこにも記載されていません。

これらは確かにドキュメントに記載されていません。しかし、以下のように記載されています。 ここで の下にある「フォントファミリ」のセクションをご覧ください。この文書には、Android Jelly Bean 4.1のすべての新しいパブリックAPIがリストアップされています。

<ブロッククオート

私が取り組んでいるアプリケーションのstyles.xmlファイルで、誰かがこれをフォントファミリーとしてリストアップしていましたが、それは間違いだと思います。

はい、それは間違いです。フォントファイルを参照するのではなく、上記のリンク先のドキュメントに記載されているフォント名を使用しなければならないのです。この場合、こうあるべきでした。

<item name="android:fontFamily">sans-serif</item>

リンク先の回答がすでに述べているように、12種類のバリエーションが可能です。

Android Jelly Bean (4.1) - API 16 で追加されました。

レギュラー (デフォルト)です。

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">normal</item> 

イタリック :

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">italic</item>

太字 :

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold</item>

ボールド-イタリック :

<item name="android:fontFamily">sans-serif</item>
<item name="android:textStyle">bold|italic</item>

:

<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">normal</item>

ライト・イタリック :

<item name="android:fontFamily">sans-serif-light</item>
<item name="android:textStyle">italic</item>

薄型 :

<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">normal</item>

シンイタリック :

<item name="android:fontFamily">sans-serif-thin</item>
<item name="android:textStyle">italic</item>

コンデンスレギュラー :

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">normal</item>

コンデンスイタリック :

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">italic</item>

コンデンスボールド :

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold</item>

コンデンスボールドイタリック :

<item name="android:fontFamily">sans-serif-condensed</item>
<item name="android:textStyle">bold|italic</item>

Android Lollipop (v5.0) - API 21 で追加されました。

ミディアム :

<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">normal</item>

中イタリック :

<item name="android:fontFamily">sans-serif-medium</item>
<item name="android:textStyle">italic</item>

ブラック :

<item name="android:fontFamily">sans-serif-black</item>
<item name="android:textStyle">italic</item>

参考までに、全部でこんな感じです。