端末組み込みフォントに満足できない場合、TrueTypeフォントファイルからTypefaceを作成してTextViewなんかに設定することができます。

やり方はこんな感じです。
※今回の例はassetsフォルダにFONTファイルを置いて読み込む例です

1 public void onCreate(Bundle savedInstanceState) {
2     super.onCreate(savedInstanceState);
3     setContentView(R.layout.activity01);
4  
5     //アセットからTypeface作成
6     Typeface typeface = Typeface.createFromAsset(getAssets(), "fonts/Diamond.ttf");
7      
8     //FONTをTextViewに設定
9     TextView txt = (TextView)findViewById(R.id.TextView01);
10     if(typeface != null && txt != null)
11         txt.setTypeface(typeface);
12 }

ちなみにassetsにおける未圧縮のファイルには上限UNCOMPRESS_DATA_MAX(1Mbyteか2Mbyte)が設定されており、UNCOMPRESS_DATA_MAXを超える未圧縮ファイルは取り扱いできませんので、注意が必要です。

もし上限を超える場合は、面倒ですが、初回起動時にネットワーク越しにダウンロードするか、zipで圧縮してassetに保存し、zipファイル解凍・保存して、そのファイルからcreateFromFile(String path)して利用すればよいです。
#ZIPの取り扱いはこちら⇒"assetsに大きなファイルを配置する方法 – Android"

脱線しますがUNCOMPRESS_DATA_MAXはAsset.hに以下の形で定義されています

1 #ifdef HAVE_ANDROID_OS
2         UNCOMPRESS_DATA_MAX = 1 * 1024 * 1024
3 #else
4         UNCOMPRESS_DATA_MAX = 2 * 1024 * 1024
5

0 件のコメント:

コメントを投稿