android端末のフォントの扱いで色々ひっかかったのでメモ。
・フォントの置き場所
/system/fonts にシステムが用いるフォントファイルが配置される
ただし、/system として内蔵メモリをROでマウントしてるので、root権限でmount -o remount,rw コマンドを用いて書き込み可にする。Milestone2だと /dev/block/mmcblk1p21 が /system にマウントされている
フォントはboot時に読み込まれるので、/system と別のファイルシステムに置いたフォントファイルを /system/fonts にリンクしていると端末が文鎮化しかねないので注意
また、フォントファイルの入れ替えを行った場合、rebootしないと反映されない
・フォント選択順序
デフォルトのLatin-1フォント(SansSelif)は DroidSans.ttf
Bold書体は DroidSans-Bold.ttf (大文字の位置に注意)
各国語別フォントは、 DroidSansJapanese.ttf 、 DroidSansThai.ttf など
最後に、どのフォントでも字形未定義の場合は DroidSansFallback.ttf を利用
なお、Serif書体は DroidSerif.ttf 、 DroidSerif-Bold.ttf 、 DroidSerif-BoldItalic.ttf などだが、デフォルトがSansSelifだとSerifは選ばれない
気をつけないといけないのは、各フォントで未定義だった場合次のフォントを見に行く仕組みになっているということ。たとえば DroidSans-Bold.ttf が日本語フォントだった場合は、DroidSansJapanese.ttf を利用しない
・unicodeのフォント
理論上 unicodeで定義された全文字を含むフォントファイルを DroidSansFallback.ttf にしておけば、どの文字も表示できる
unicode全文字種を網羅したフリーフォントは多分無い
漢字以外であれば GNU Freefont が多くの言語及び記号を網羅している。また、シェアウェアではあるが、Everson Mono(25ユーロ)も手広くカバーしている。これら2フォントでおおよそのLatin系文字は網羅できそう
漢字系の文字、日本語記号については、Androidコミュニティにコントリビュートされているモトヤフォントや、Windows付属のMeiryo(Windowsと別個に使うのはライセンス的に問題あり?)などが結構カバーしている。が、一部簡体字が漏れているので、Android端末に標準添付されている DroidSansFallback.ttf で補う
・丸数字、ローマ数字の扱い(未解決)
Android端末のブラウザでmixiを見ると、丸数字やローマ数字が未定義文字扱いになる
euc→unicode変換がうまく行っていないのか?
・フォントの置き場所
/system/fonts にシステムが用いるフォントファイルが配置される
ただし、/system として内蔵メモリをROでマウントしてるので、root権限でmount -o remount,rw コマンドを用いて書き込み可にする。Milestone2だと /dev/block/mmcblk1p21 が /system にマウントされている
フォントはboot時に読み込まれるので、/system と別のファイルシステムに置いたフォントファイルを /system/fonts にリンクしていると端末が文鎮化しかねないので注意
また、フォントファイルの入れ替えを行った場合、rebootしないと反映されない
・フォント選択順序
デフォルトのLatin-1フォント(SansSelif)は DroidSans.ttf
Bold書体は DroidSans-Bold.ttf (大文字の位置に注意)
各国語別フォントは、 DroidSansJapanese.ttf 、 DroidSansThai.ttf など
最後に、どのフォントでも字形未定義の場合は DroidSansFallback.ttf を利用
なお、Serif書体は DroidSerif.ttf 、 DroidSerif-Bold.ttf 、 DroidSerif-BoldItalic.ttf などだが、デフォルトがSansSelifだとSerifは選ばれない
気をつけないといけないのは、各フォントで未定義だった場合次のフォントを見に行く仕組みになっているということ。たとえば DroidSans-Bold.ttf が日本語フォントだった場合は、DroidSansJapanese.ttf を利用しない
・unicodeのフォント
理論上 unicodeで定義された全文字を含むフォントファイルを DroidSansFallback.ttf にしておけば、どの文字も表示できる
unicode全文字種を網羅したフリーフォントは多分無い
漢字以外であれば GNU Freefont が多くの言語及び記号を網羅している。また、シェアウェアではあるが、Everson Mono(25ユーロ)も手広くカバーしている。これら2フォントでおおよそのLatin系文字は網羅できそう
漢字系の文字、日本語記号については、Androidコミュニティにコントリビュートされているモトヤフォントや、Windows付属のMeiryo(Windowsと別個に使うのはライセンス的に問題あり?)などが結構カバーしている。が、一部簡体字が漏れているので、Android端末に標準添付されている DroidSansFallback.ttf で補う
・丸数字、ローマ数字の扱い(未解決)
Android端末のブラウザでmixiを見ると、丸数字やローマ数字が未定義文字扱いになる
euc→unicode変換がうまく行っていないのか?