ICS化したXperiaのFontを変更(日本語・欧文) | ネットショッピングのすすめ

ICS化したXperiaのFontを変更(日本語・欧文)

2xの時と4xではフォントの変更方法が変わりました。
root取れるレベルの方であれば簡単に変更できますので、手順を簡単に書きます。


ICSなandroidでのフォントの仕組みをおおまかに書くと、
Font自体は2xと同じで /system/fonts/ にあるFontが読み込まれるのですが、システムに反映させるにはfallback_fonts.xmlというファイルに記述されたttfが、記述された順番に適用されます。(Jelly Beanでは /system/etc/fallback_fonts-ja.xml だそうです)

ですがこのfallback_fonts.xmlが
/system/vendor/etc/
/system/etc/
の2箇所にあって『/system/vendor/etc/』→『/system/etc/』の順で適用されるようです。



PCをつかった手順を書きますが、systemファイルを変更できるファイラがあればandroid上でも可能です。
※日本語フォントだけ変更したい場合の1番簡単な方法は
『自分のフォント.ttf』→『DroidSansJapanese.ttf』に名前を変更して
644で /system/fonts/ に上書きして再起動すればOKです。ただし太字にはなりません。
(元のDroidSansJapanese.ttfはバックアップしてください)




【1月28日 ここだけ追記】英語フォントは気をつけてください。昨日気づきましたが、私のダイヤルパッド(電話の数字の部分)の*キーが上にずれてました。まだ直してませんけど…



日本語フォントと英語(欧文)フォントの変更手順を書きます。
私がやった方法を書きますが、先ほどの『ICSなandroidでのフォントの仕組み』を理解すればフォント名は別の名前でも問題ありません。

【ISCでフォントを変更する手順】
①PCで自分のフォントの名前を変更する

私の場合
日本語 標準:uzura.ttf
日本語 太字:なし
英語 標準:VeggiMed.ttf
英語 太字:VeggiBol.ttf
を使います。

最終的にはこの各フォント名を次のように変更します


日本語 標準:DroidSansJapanese.ttf
日本語 太字:DroidSansJapanese-Bold.ttf
英語 標準:Roboto-Regular.ttf
英語 太字:Roboto-Bold.ttf

がFontフォルダにコピーするにあたりいったん

日本語 標準:myDroidSansJapanese.ttf
日本語 太字:myDroidSansJapanese-Bold.ttf
英語 標準:myRoboto-Regular.ttf
英語 太字:myRoboto-Bold.ttf

としておきます。


②PCからスマホにFontを移す
①のファイル4つをSDカードにコピーして /system/fonts/ に644でコピーして、
DroidSansJapanese.ttf
DroidSansJapanese-Bold.ttf
Roboto-Regular.ttf
Roboto-Bold.ttf
にリネームします。


③fallback_fonts.xmlを編集する
/system/vendor/etc/fallback_fonts.xmlをSDカードにコピーして、PCに移す

PCのファイラでvendorのfallback_fonts.xmlを開くとオリジナルは
<?xml version="1.0" encoding="utf-8"?>
<familyset>

<!-- SoMC Latin Fallback font -->
<family order="0">
<fileset>
<file>SoMCSans-Regular.ttf</file>
</fileset>
</family>

<!-- Japanese Motoya font -->
<family>
<fileset>
<file>MTLmr3m.ttf</file>
</fileset>
</family>

<!-- SoMC HKSCS Fallback font -->
<family>
<fileset>
<file>SoMC-HKSCS-Fallback.ttf</file>
</fileset>
</family>

</familyset>

こんなふうになっています。


記述してあるttfが上から順に適用されるので1番上に
    <family>
<fileset>
<file>DroidSansJapanese.ttf</file>
<file>DroidSansJapanese-Bold.ttf</file>
</fileset>
</family>
    <family>
<fileset>
<file>Roboto-Regular.ttf</file>
<file>Roboto-Bold.ttf</file>
</fileset>
</family>

を書き加えます。

    <!-- SoMC Latin Fallback font -->
<family order="0">
<fileset>
<file>SoMCSans-Regular.ttf</file>
</fileset>
</family>

は邪魔なので削除しちゃいます。
order="0"を削除して残しておいても大丈夫です。



書き加えたものが下のソースです。
<?xml version="1.0" encoding="utf-8"?>
<familyset>

<family>
<fileset>
<file>DroidSansJapanese.ttf</file>
<file>DroidSansJapanese-Bold.ttf</file><!--●日本語の太字がいらない場合はこの行は削除する●-->
</fileset>
</family>
<family>
<fileset>
<file>Roboto-Regular.ttf</file>
<file>Roboto-Bold.ttf</file>
</fileset>
</family>

<!-- Japanese Motoya font -->
<family>
<fileset>
<file>MTLmr3m.ttf</file>
</fileset>
</family>

<!-- SoMC HKSCS Fallback font -->
<family>
<fileset>
<file>SoMC-HKSCS-Fallback.ttf</file>
</fileset>
</family>

</familyset>

<!--●●-->は私が記述したのもなので、実際は削除してください。
私と同じで日本語の太字が別にいらない方は、

<file>DroidSansJapanese-Bold.ttf</file>

の行は削除してください。


書き換えたfallback_fonts.xmlは『my-fallback_fonts.xml』とかにいったん名前を変えて保存します。


④fallback_fonts.xmlを編集したものに置き換える
PC上の『my-fallback_fonts.xml』をSDカードにコピー

 /system/vendor/etc/ にコピーしてパーミッションを644に変更

『fallback_fonts.xml』に名前を変更する

再起動



これでフォントが変更されてると思います。
もし変更されていないなら /system/etc/fallback_fonts.xml にも追加して再起動してみてください。
※<family order="0">はないので&ltfamilyset>の下の行に追加です。DroidSansJapanese.ttfの箇所は重複するので注意してください。


各ファイルの変更は必ずバックアップをとってから変更することをオススメします。

【1月21日 追記】
ICSにおいては太字FontにBold属性がないとうまくいかないようです。
http://d.hatena.ne.jp/nugimas/20110511/1305101889
普通に太字Fontに太字用のFontを使えば大丈夫かな?
たぶん太字Fontに普通のFontを適用しようとするとダメってことらしい。

それと、適用するttfのファイルサイズが大きすぎてもダメらしいです。
私が適用したuzura.ttfは8MBありましたけど…

イレギュラーな適用をお考えの方は詳しくお調べください。