日本語フォントを使用する


20130419font4

英語フォント の場合は、素直にフォントファイルを内蔵すれば、よかったのですが。
日本語フォントの場合は、少し工夫が必要です。

Android の制約として、assets フォルダに内蔵できる非圧縮ファイルの容量に制限があります。
日本語フォントの場合は、この制限に引っかかります。

これを回避するには、いったん圧縮ファイル (zip) にして内蔵して、アプリで解凍します。
解凍する先は、2つあります。
(1) アプリ配下の専用領域 (他のアプリからは使用できない)
(2) SDカード (他のアプリからは使用できる)

解凍されたフォントファイルは、Typeface#createFromFile で呼び出します

フォントのサンプルには みかちゃんフォント衡山毛筆フォント を使用しました。

ソースコードは code.google にて公開しています。

参考
TextViewに独自フォントを使用する方法
apkに1MB以上のデータベースファイルを含める


英語フォントを使用する


20130418font3

アプリにフォントを内蔵することが出来ます。
英語フォントの場合は、簡単です。
日本語フォント の場合は、ちょっと面倒です。

英語フォントの場合
assets フォルダに、フォントファイルを内蔵します。
Typeface#createFromAsset で呼び出します。

フォントのサンプルには Dancing-Script.ttf を使用しました。

ソースコードは code.google にて公開しています。

参考
Android端末の組み込みフォント以外を使用する


内蔵フォントを使用する


20130416font2

Andorid では /system/fonts/ ディレクトリにフォントが内蔵されています。
内蔵されているフォントは、機種によって異なります。

Typeface#createFromFile を使って、内蔵フォントを使用することが出来ます。

ソースコードは code.google にて公開しています。

参考
フォントを変更する
AOSP に用意されているフォントの一覧


フォントを指定する


20130415font1

Typeface クラスに、5つのフォントファミリと4つのフォントスタイルが用意されています。
20通り (5×4) の組合せが可能です。
組合せは、無効なものや重複しているものがあるので、実質的なフォントの数はもっと少ないですが。

Typeface#create でフォントを選択して、
TextView#setTypeface で文字列にフォントを指定します。

フォントを指定しないときは、DroidSans.ttf が使用されます。
DroidSans.ttf の中身は、機種によって異なります。
Android 4.0 以降は、モトヤフォントが採用されています。

ソースコードは code.google にて公開しています。

参考
AndroidアプリでTextViewに使用できるフォントの一覧
モトヤ、Androidプラットフォームにフォント2書体を提供


フォントファイル中の文字の一覧を取得する


Aのフォントファイルにある全ての文字が、Bのフォントファイルにもあるのかを、簡単に知る方法はないようです。

フォントファイル中の文字の一覧を取得することは、FontForge のスクリプト実行で出来ます。

SelectWorthOutputting()
str=""
code=0
foreach
code=GlyphInfo("Unicode")
str+="U+"+code+" "
endloop
WriteStringToFile(str,"/Users/user/tmp/font.txt")

結果はこんな感じ

U+32 U+33 U+34 U+35 U+36 U+37 U+38 U+39 U+40 U+41 U+42 U+43 U+44 U+45 U+46 U+47 …

参考
フォント中のグリフの存在を確認する方法