Androidの日本語の標準フォントは、こんな感じの普通のゴシック体(?)ですが、
このようないい感じのフォントを使って、より格好良く、よりかわいく見せたいことがありますよね。
そんなときに、「Calligraphy」というライブラリを使うと、簡単にカスタムフォントを設定することができます。
もくじ
1.「Calligraphy」のインストール(モジュールレベルの「build.gradle」に依存関係を設定))
dependencies { compile 'uk.co.chrisjenx:calligraphy:2.3.0' }
2.自分の使いたいフォントのttfファイルを取得(商用フリーのもの)
ここ以外にも色々フォントが入手できるサイトあります(フォント 商用フリーでググってみてください)
3.プロジェクトに「assets」フォルダを作って、入手したフォントファイルを入れる
assetsフォルダは何でも入れることが出来るので、種類ごとにフォルダを切ったほうがわかりやすいと思います(今回は「fonts」フォルダを作りました)。
4.Applicationクラスを継承したクラスを作って(例ではMyApplication)、onCreateメソッドでCalligraphyの初期設定
ApplicationクラスのonCreateメソッドは、アプリが起動した時に一番最初に通るメソッドです。アプリの色んな初期設定に使えるクラスですね。
class MyApplication: Application() { override fun onCreate() { super.onCreate() CalligraphyConfig.initDefault(CalligraphyConfig.Builder() .setDefaultFontPath("fonts/font.ttf") .setFontAttrId(R.attr.fontPath) .build()) } }
5.マニフェストファイルで、4で作ったApplicationを継承したクラスを最初に起動するクラスに設定
これ、結構忘れがちになるので注意。
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="https://schemas.android.com/apk/res/android" package="net.minpro.kotlinapp"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme" android:name=".MyApplication"> ← コレ!!
6.カスタムフォントを表示させたい画面(Activity)で、カスタムフォントにアクセスできるように設定(attachBaseContextメソッドのオーバーライド)
class MainActivity : AppCompatActivity() { override fun attachBaseContext(newBase: Context?) { super.attachBaseContext(CalligraphyContextWrapper.wrap(newBase)) } }
以上です。
とても簡単な設定でカスタムフォントが使えますので、是非やってみてください。
フォントが変わるだけで、見た目が全然違うアプリになりますよ!!
(詳しくは下の動画で解説していますので、よろしければご覧ください)