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

[解決済み】AndroidでTextViewのfontFamilyを変更する方法

2022-04-13 09:40:23

質問

そこで android:fontFamily をAndroidで使用したいのですが、Androidにはあらかじめ定義されたフォントが見当たりません。あらかじめ定義されているものを選ぶにはどうしたらいいのでしょうか?自分でTypeFaceを定義する必要はないのですが、必要なのは今表示されているものと違うものだけです。

<TextView
    android:id="@+id/HeaderText"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:layout_marginTop="52dp"
    android:gravity="center"
    android:text="CallerBlocker"
    android:textSize="40dp"
    android:fontFamily="Arial"
 />

私が上でやったことは、実際には機能しないようです ちなみに android:fontFamily="Arial" は愚かな試みだった!

解決方法は?

android 4.1 / 4.2 / 5.0 からは、以下のようになります。 ロボト のフォントファミリーが利用可能です。

android:fontFamily="sans-serif"           // roboto regular
android:fontFamily="sans-serif-light"     // roboto light
android:fontFamily="sans-serif-condensed" // roboto condensed
android:fontFamily="sans-serif-black"     // roboto black
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"

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

  • Robotoレギュラー
  • ロボト・イタリック
  • ロボトボールド
  • ロボトボールドイタリック
  • ロボライト
  • ロボライト イタリック
  • ロボトシン
  • ロボトシン イタリック
  • ロボコン
  • ロボコンイタリック
  • ロボコン太字
  • ロボコン太字イタリック
  • ロボトブラック
  • ロボトブラック イタリック
  • ロボ・ミディアム
  • ロボ・ミディアム・イタリック

fonts.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="font_family_light">sans-serif-light</string>
    <string name="font_family_medium">sans-serif-medium</string>
    <string name="font_family_regular">sans-serif</string>
    <string name="font_family_condensed">sans-serif-condensed</string>
    <string name="font_family_black">sans-serif-black</string>
    <string name="font_family_thin">sans-serif-thin</string>
</resources>