[Android] 「Caligaphy」TextView等にカスタムフォントを適用するライブラリ

フォントファイル貰ってTextViewに当て込んでますか?

昔作ってたアプリでカスタムフォントを使うためのカスタムTextViewを作って、アプリケーションクラスで読み込んだフォントファイルをTextViewに流し込むとかやってましたよ。

今は便利な世の中になったものでカスタムフォントを扱ってくれるライブラリが登場しました。

っていっても結構前っぽいけど。。。

気づくの遅い・・・。

ってことで、カスタムフォントを適用するライブラリの導入方法を紹介します。

スポンサーリンク

ライブラリ導入方法

とりあえず、デフォルトフォントを使うための導入方法を記載。

フォントファイル追加

フォントファイルをassets/fonts等のアセットフォルダに適宜置く

build.gradleに追加

implementation 'uk.co.chrisjenx:calligraphy:2.2.0'

アプリケーションクラスで初期化(デフォルトフォント指定)

CalligraphyConfig.initDefault(
    CalligraphyConfig.Builder()
        .setDefaultFontPath("fonts/hoge-Regular.otf")
        .setFontAttrId(R.attr.fontPath)
        .build())

setDefaultFontPathで指定したフォントファイルがデフォルトで使用されるようになる。

使うActivityでアタッチ

// Added Default Font.
override fun attachBaseContext(newBase: Context?) {
    super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase))
}

BaseActivityとかあったらそこで書くといいと思う。

ここまででデフォルト設定したフォントの適用は終了。

デフォルトフォント以外を使いたい

assetsにフォントファイルは入っている前提。

別のフォント用のスタイルを作成

<style name="bold" parent="android:TextAppearance">
    <item name="fontPath">fonts/hoge-Bold.otf</item>
</style>

TextView等に適用する

android:textAppearance="@style/boldFont"
タイトルとURLをコピーしました