発音記号を表示するアプリを作っていて、発音記号が文字化けすることが発覚した。IPA拡張フォント入っていないということだった。windowsパソコンだったらMSゴシックとかに入っているので、普通に表示されるのにAndroid端末の組み込みフォントには入っていない。
rootを取ってフォントを入れ替えや追加することもできるけど、アプリのユーザーにそこまでお願いすることはできない。
そこで、Android端末の組み込みフォント以外を使用する方法を使う。
それは、assetsディレクトリにフォントファイルを置いて、それを読み込んで使うというもの。
1.IPA拡張フォントの入ったフォントをダウンロード
IPA(独立行政法人 情報処理推進機構)が出しているフォントを使おうとしたら、IPA拡張フォントの中で、いくつか入っていないものがあったので、「DoulosSIL.ttf」をダウンロードして使う。
1MBくらいとフォントの中では結構軽い方ではないかと思う。日本語は使えないと思うけど、英語とIPA拡張フォントが入っているので大丈夫。
2.assetにフォントを入れる
assetに「fonts」フォルダを作って、そこにダウンロードした「DoulosSIL.ttf」をインポートする。
3.プログラムで呼び出す
TextView txt = (TextView)findViewById(R.id.TextView01);
//アセットからTypeface作成
Typeface typeface = Typeface.createFromAsset(getAssets(), “fonts/DoulosSIL.ttf”);
txt.setTypeface(typeface);