web-dev-qa-db-ja.com

Androidのデフォルトのフォントファミリは何ですか?

API 16から、使用可能なフォントファミリとしてJellybean Robotoが導入されました。 Android 16 here の「新機能」をご覧ください。

TextViewfontFamilyのデフォルトTextViewAndroid:fontFamily="sans-serif"(API 16+のロボト)を指定しますか?

<TextView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content" />

に相当

<TextView
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:fontFamily="sans-serif" />

From Material design typography website

「ロボトとノートは、AndroidとChromeの標準の書体です。」

Wiki から、

「ロボトは、モバイルオペレーティングシステムAndroidのシステムフォントとしてGoogleが開発したサンセリフ体書体です。」

AndroidのデフォルトのfontFamilyが何であるかはドキュメントでわかりません。参考文献を参照してください:

42
Jared Burrows

D.Android.comには、フォントファミリ名に関するドキュメントはありません。ただし、AOSPを見ると、デフォルトのフォントがAndroid.graphics.*にロードされています。 FontListParser は、/system/etc/fonts.xml(Android 5.0+)または/system/etc/system_fonts.xml(Android 4.1)からデフォルトのフォントをロードします。デフォルトのフォントは Typeface#init にロードされます。

2つのXMLファイルにはいくつかのドキュメントがあります。最初のフォントはデフォルトのフォントです。デバイスから/system/etc/fonts.xmlをプルできます。デバイスの製造元またはカスタムROMは、デフォルトのシステムフォントを変更する場合があります。

fonts.xml(API 21+)

注:これは、システムフォント構成の新しい(L)バージョンであり、より豊富なウェイト選択をサポートしています。一部のアプリは古いバージョンを想定しているため、フレームワークがこのファイルのみを読み取る場合でも、system_fonts.xmlとfallback_fonts.xmlを変更と同期してください。

名前のないすべてのフォントがデフォルトのリストに追加されます。フォントは一致に基づいて選択されます。スクリプトを含む完全なBCP-47言語タグ、次に言語のみ、最後に順序(グリフを含む最初のフォント)。

外観の順序は、ウェイトマッチングのタイブレーカーでもあります。これが、Robotoの900ウェイトが700ウェイトに先行する理由です-800ウェイトが要求される場合は、前者を優先します。ボールドスパンはウェイトに300を効果的に追加するため、これにより900が500ウェイトとペアになり、適切なコントラストが確保されます。

system_fonts.xml(API 16-20)

システムフォント

このファイルには、サポートされているすべてのグリフにデフォルトで使用されるフォントファミリがリストされています。各エントリは、ファミリ、そのファミリでサポートされているさまざまな名前、および最大4つのフォントファイルで構成されています。フォントファイルは、サポートしているスタイルの順にリストされています:レギュラー、ボールド、イタリック、ボールドイタリック。リストされているスタイルが4つ未満の場合、フォントファイルが関連付けられていないスタイルは、リストされている他のフォントファイルでサポートされます。

最初のファミリはデフォルトのフォントでもあり、特定のフォント名を指定していないフォント要求を処理します。

システムフォントで処理されないグリフがあると、代替フォントが検索されます。デフォルトのフォールバックフォントはファイル/system/etc/fallback_fonts.xmlで指定されており、ベンダーが/vendor/etc/fallback_fonts.xmlで使用する他のフォールバックフォントを指定するために提供するオプションのファイルがあります。

Fonts.xmlファイルを解析すると、どのフォントファミリがどの書体を使用しているかを見つけることができます( here を参照)。

╔════╦════════════════════════════╦═════════════════════════════╗
║    ║ FONT FAMILY                ║ TTF FILE                    ║
╠════╬════════════════════════════╬═════════════════════════════╣
║  1 ║ casual                     ║ ComingSoon.ttf              ║
║  2 ║ cursive                    ║ DancingScript-Regular.ttf   ║
║  3 ║ monospace                  ║ DroidSansMono.ttf           ║
║  4 ║ sans-serif                 ║ Roboto-Regular.ttf          ║
║  5 ║ sans-serif-black           ║ Roboto-Black.ttf            ║
║  6 ║ sans-serif-condensed       ║ RobotoCondensed-Regular.ttf ║
║  7 ║ sans-serif-condensed-light ║ RobotoCondensed-Light.ttf   ║
║  8 ║ sans-serif-light           ║ Roboto-Light.ttf            ║
║  9 ║ sans-serif-medium          ║ Roboto-Medium.ttf           ║
║ 10 ║ sans-serif-smallcaps       ║ CarroisGothicSC-Regular.ttf ║
║ 11 ║ sans-serif-thin            ║ Roboto-Thin.ttf             ║
║ 12 ║ serif                      ║ NotoSerif-Regular.ttf       ║
║ 13 ║ serif-monospace            ║ CutiveMono.ttf              ║
╚════╩════════════════════════════╩═════════════════════════════╝
52
Jared Rummler