2
4

More than 3 years have passed since last update.

Androidアプリでカスタムフォントを使いたい!

Last updated at Posted at 2020-03-07

目的

標準フォント以外のフォントを使う

環境

Android Studio 3.6.1
Build #AI-192.7142.36.36.6241897, built on February 27, 2020
ランタイム・バージョン: 1.8.0_212-release-1586-b04 amd64
VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Windows 10 10.0
GC: ParNew, ConcurrentMarkSweep
Memory: 1246M
Cores: 4
Registry: ide.new.welcome.screen.force=true

カスタムフォント使用の手順

①カスタムフォントを用意

なんでもいいんですが、SourceHanSerifを使っていきます。
SourceHanSerifとは:https://source.typekit.com/source-han-serif/jp/
直ダウンロードリンク:https://github.com/adobe-fonts/source-han-serif/tree/release/OTF/Japanese

fontフォルダーを追加

resフォルダーを右クリック
 >新規
  >フォルダー
   >フォント・リソース・フォルダー
でfontフォルダーを追加します。

②カスタムフォントをfontフォルダーに配置

普通にotfファイルをコピペで大丈夫です。
( 使えない文字がファイル名に入っている場合は、
各自修正してください。例えばハイフンとか... )
added_font.PNG

③FontFamilyプロパティにカスタムフォントを設定

上の方にProjectというグループができるので、そこからカスタムフォントを選択します。
select_font.png

大まかなカスタムフォント使用の手順は以上になります。

問題点

フォントにはBaseLineと余白という概念が存在して、実際に設定されています。
標準フォントは一定水準使えるように、BaseLineや余白は綺麗に合わせられています。
ですがカスタムフォントは大抵の場合、フォントごとにバラバラなのでこの問題が出てくるということになります。
real.PNG

実行してみるとどうでしょう。
これは悪なことに、実行してみないと分からないんです。
私はこの問題にやられて何度もリサーチしましたが運悪く、見つからず、「もういい!標準フォントで断念だ」となったとこがありました。
同じ思いをした方が多いのではないかと思い、この記事を書いたのであります。

プロパティをよく見てる人なら気付いたと思いますが、解決方法は簡単です。

解決方法

★includeFontPaddingプロパティを無効化する。

テキストを扱うViewには大抵、includeFontPaddingプロパティが設けられており、デフォルトではtrueになっています。
includeFontPaddingプロパティは言葉の通りですが、フォントに設定されている余白を含めるかどうかというプロパティになっています。

falseを設定することで無効化できます。
disable_include_font_padding.PNG

includeFontPaddingを無効化したら実行して確認してみてください。
disabled_after_real.PNG

以上になります。
参考になった方がいましたら、是非いいねや共有をしてみてください。
ありがとうございました。

2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4