Android 4.0 でのフォント入れ替え方法(およびフォントファミリの定義について)
Andorid 4.0(ICS)でのフォント変更時の注意点です。
※ 2012/2/27 /systemのマウントとドコモ絵文字対応について追記
※ 2012/2/17 githubのモトヤフォントのURL追加
基本は、Android 2.3の時と同じで /system/fonts に .ttf ファイルを入れるだけなんですが、それ以外にも、
/system/etc/system_fonts.xml
/system/etc/fallback_fonts.xml
の2つが正しく定義されている必要があります。
順序としては、
- system_fonts.xml ファイルを見てフォント名に対応するフォントファイルを参照
- マッチしない場合は fallback_fonts.xml の定義を先頭から順に参照
する仕組みになっているようです。
例えば、DroidSansJapanse.ttf を新規に追加する場合は、/system/fonts に ttf ファイルを追加した上で、fallback_fonts.xml 内の familyset 以下に
<family>
<fileset>
<file>DroidSansJapanese.ttf</file>
</fileset>
</family>
を追記する必要があります。
fallback_fonts.xmlファイルは先頭から順に参照されますので、優先して使いたいフォントファイルは先頭に追記するのが良いでしょう。
Android 4.0 から日本語向けに導入されたモトヤフォントは 、ありがたいことにgithubからダウンロードできます。
- モトヤLシーダ3等幅
https://github.com/android/platform_frameworks_base/blob/master/data/fonts/MTLc3m.ttf - モトヤLマルベリ3等幅
https://github.com/android/platform_frameworks_base/blob/master/data/fonts/MTLmr3m.ttf
ドコモ版絵文字への対応について
Galaxy NexuでのSPモードメール・Gmailでのドコモ版キャリア絵文字利用については、以下記事の当該項目参照の事。
Galaxy Nexusのroot取得→カスタムROM導入のメモ | TeraDas-テラダス
/systemに書き込みできない場合
状況によりますが、/systemがマウントされていなかったり、書き込み権限がなかったりして、adb pushでのファイル転送に失敗(あるいは表向きは成功するがファイル転送されていない)する場合があります。
その場合は、以下の手順で/system 以下が書き込み可能になります。
- カスタムリカバリ → mounts and storage → unmount /system → mount /system
- > adb shell mount -o rw,remount /system